gov.nih.nci.cabig.caaers.resolver.RemoteStudyResolverTest.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.cabig.caaers.resolver.RemoteStudyResolverTest.java

Source

/*******************************************************************************
 * Copyright SemanticBits, Northwestern University and Akaza Research
 * 
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.com/caaers/LICENSE.txt for details.
 ******************************************************************************/
package gov.nih.nci.cabig.caaers.resolver;

import edu.duke.cabig.c3pr.esb.Metadata;
import gov.nih.nci.cabig.caaers.AbstractTestCase;
import gov.nih.nci.cabig.caaers.domain.RemoteStudy;
import gov.nih.nci.cabig.caaers.domain.StudyTherapy;
import gov.nih.nci.cabig.caaers.domain.StudyTherapyType;
import gov.nih.nci.cabig.caaers.esb.client.MessageBroadcastService;
import gov.nih.nci.coppa.services.pa.StudyProtocol;
import gov.nih.nci.cabig.caaers.domain.InvestigationalNewDrug;
import gov.nih.nci.cabig.caaers.domain.OrganizationHeldIND;
import gov.nih.nci.cabig.caaers.domain.InvestigatorHeldIND;

import java.util.List;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.easymock.EasyMock;
import org.iso._21090.II;

/**
 * 
 * @author Biju Joseph
 *
 */
public class RemoteStudyResolverTest extends AbstractTestCase {
    RemoteStudyResolver studyResolver;
    MessageBroadcastService messageBroadcastService;
    StudyProtocol studyProtocol;
    II identifier;

    protected void setUp() throws Exception {
        super.setUp();

        //initilize the study protocol
        studyProtocol = new StudyProtocol();
        identifier = new II();
        identifier.setExtension("tester");
        studyProtocol.setIdentifier(identifier);

        studyResolver = new RemoteStudyResolver();
        messageBroadcastService = registerMockFor(MessageBroadcastService.class);
        studyResolver.setMessageBroadcastService(messageBroadcastService);
    }

    public void testPopulateIND_NIH_NCI_CoppaResponse() throws Exception {
        String xml = IOUtils.toString(getClass().getResourceAsStream("indide_with_nci_nih_coppa_response.xml"));
        EasyMock.expect(messageBroadcastService.broadcastCOPPA((List<String>) EasyMock.anyObject(),
                (Metadata) EasyMock.anyObject())).andReturn(xml);
        replayMocks();
        RemoteStudy remoteStudy = new RemoteStudy();
        studyResolver.populateIND(studyProtocol, remoteStudy);
        assertNotNull(remoteStudy.getInvestigationalNewDrugList());
        assertEquals(2, remoteStudy.getInvestigationalNewDrugList().size());
        assertTrue(
                remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder() instanceof OrganizationHeldIND);
        assertTrue(
                remoteStudy.getInvestigationalNewDrugList().get(1).getINDHolder() instanceof OrganizationHeldIND);
        assertTrue(!StringUtils
                .equals(((OrganizationHeldIND) remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder())
                        .getOrganization().getNciInstituteCode(), "DUMMY"));
        assertTrue(!StringUtils
                .equals(((OrganizationHeldIND) remoteStudy.getInvestigationalNewDrugList().get(1).getINDHolder())
                        .getOrganization().getNciInstituteCode(), "DUMMY"));
        assertEquals(new Integer("46211"), remoteStudy.getInvestigationalNewDrugList().get(0).getIndNumber());
        assertEquals(new Integer("98765"), remoteStudy.getInvestigationalNewDrugList().get(1).getIndNumber());

        verifyMocks();
    }

    public void testPopulateIND_Industry_Organization_CoppaResponse() throws Exception {
        String xml = IOUtils
                .toString(getClass().getResourceAsStream("indide_with_industry_org_coppa_response.xml"));
        EasyMock.expect(messageBroadcastService.broadcastCOPPA((List<String>) EasyMock.anyObject(),
                (Metadata) EasyMock.anyObject())).andReturn(xml);
        replayMocks();
        RemoteStudy remoteStudy = new RemoteStudy();
        studyResolver.populateIND(studyProtocol, remoteStudy);
        assertNotNull(remoteStudy.getInvestigationalNewDrugList());
        assertEquals(2, remoteStudy.getInvestigationalNewDrugList().size());
        assertTrue(
                remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder() instanceof OrganizationHeldIND);
        assertTrue(
                remoteStudy.getInvestigationalNewDrugList().get(1).getINDHolder() instanceof OrganizationHeldIND);
        assertTrue(StringUtils
                .equals(((OrganizationHeldIND) remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder())
                        .getOrganization().getNciInstituteCode(), "DUMMY"));
        assertTrue(StringUtils
                .equals(((OrganizationHeldIND) remoteStudy.getInvestigationalNewDrugList().get(1).getINDHolder())
                        .getOrganization().getNciInstituteCode(), "DUMMY"));
        assertEquals(new Integer("76543"), remoteStudy.getInvestigationalNewDrugList().get(0).getIndNumber());
        assertEquals(new Integer("871234"), remoteStudy.getInvestigationalNewDrugList().get(1).getIndNumber());

        verifyMocks();
    }

    public void testPopulateIND_Investigator_CoppaResponse() throws Exception {
        String xml = IOUtils
                .toString(getClass().getResourceAsStream("indide_with_investigator_coppa_response.xml"));
        EasyMock.expect(messageBroadcastService.broadcastCOPPA((List<String>) EasyMock.anyObject(),
                (Metadata) EasyMock.anyObject())).andReturn(xml);
        replayMocks();
        RemoteStudy remoteStudy = new RemoteStudy();
        studyResolver.populateIND(studyProtocol, remoteStudy);
        assertNotNull(remoteStudy.getInvestigationalNewDrugList());
        assertEquals(1, remoteStudy.getInvestigationalNewDrugList().size());
        assertTrue(
                remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder() instanceof InvestigatorHeldIND);
        assertTrue(StringUtils
                .equals(((InvestigatorHeldIND) remoteStudy.getInvestigationalNewDrugList().get(0).getINDHolder())
                        .getInvestigator().getNciIdentifier(), "-1111"));
        assertEquals(new Integer("53893"), remoteStudy.getInvestigationalNewDrugList().get(0).getIndNumber());

        verifyMocks();
    }
}