package gov.samhsa.consent2share.showcase.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import gov.samhsa.acs.common.tool.SimpleMarshaller; import gov.samhsa.acs.xdsb.common.XdsbDocumentType; import gov.samhsa.consent2share.hl7.Hl7v3TransformerException; import gov.samhsa.consent2share.pixclient.service.PixManagerService; import gov.samhsa.consent2share.pixclient.util.PixManagerBean; import gov.samhsa.consent2share.pixclient.util.PixManagerConstants; import gov.samhsa.consent2share.pixclient.util.PixManagerRequestXMLToJava; import gov.samhsa.consent2share.showcase.exception.AcsShowCaseException; import gov.samhsa.consent2share.showcase.exception.XmlAttributeSetterException; import gov.samhsa.consent2share.showcase.infrastructure.PixOperation; import gov.samhsa.consent2share.showcase.infrastructure.XdsbRegistryGetter; import gov.samhsa.consent2share.showcase.infrastructure.XdsbRepositoryService; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import oasis.names.tc.ebxml_regrep.xsd.rs._3.RegistryResponse; import org.hl7.v3.types.MCCIIN000002UV01; import org.hl7.v3.types.ObjectFactory; import org.hl7.v3.types.PRPAIN201301UV02; import org.hl7.v3.types.PRPAIN201302UV02; import org.hl7.v3.types.PRPAIN201309UV02; import org.hl7.v3.types.PRPAIN201310UV02; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.runners.MockitoJUnitRunner; @SuppressWarnings("unchecked") @RunWith(MockitoJUnitRunner.class) public class PixOperationsServiceImplTest { @Spy @InjectMocks PixOperationsServiceImpl sut; @Mock private PixManagerRequestXMLToJava requestXMLToJavaMock; @Mock private PixManagerBean pixMgrBeanMock; @Mock private PixManagerService pixMgrServiceMock; @Mock PixManagerTransformService pixManagerTransformServiceMock; @Mock XdsbRegistryGetter xdsbRegistryGetterMock; @Mock XdsbRepositoryService xdsbRepositoryMock; @Mock XmlAttributeSetter xmlAttributeSetter; @Mock SimpleMarshaller marshallerMock; @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testAddPatientRegistryRecord() throws Throwable { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3XmlMock = "hl7v3XmlMock"; final String eIdMock = "eIdMock"; final String addMsgMock = "addMsgMock"; // PRPAIN201309UV02 requestMock = mock(PRPAIN201309UV02.class); // PRPAIN201310UV02 responseMock = mock(PRPAIN201310UV02.class); final MCCIIN000002UV01 expectedResponseMock = mock(MCCIIN000002UV01.class); final Map<String, String> queryMapMock = new HashMap<String, String>(); queryMapMock.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eIdMock); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setMarshaller(marshallerMock); when( pixManagerTransformServiceMock.getPixXml(PixOperation.QUERY, c32XmlMock)).thenReturn(hl7v3XmlMock); // when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)).thenReturn(hl7v3XmlMock); when( pixManagerTransformServiceMock.getPixXml(PixOperation.ADD, c32XmlMock)).thenReturn(hl7v3XmlMock); // when(pixManagerTransformServiceMock.getPixAddXml(c32XmlMock)).thenReturn(hl7v3XmlMock); when( xdsbRegistryGetterMock.pidFeed(PixOperation.ADD, hl7v3XmlMock, eIdMock, PixManagerConstants.GLOBAL_DOMAIN_ID)) .thenReturn(addMsgMock); // when(xdsbRegistryGetterMock.addPatientRegistryRecord(hl7v3XmlMock,eIdMock, // PixManagerConstants.GLOBAL_DOMAIN_ID)).thenReturn(addMsgMock); when( marshallerMock.unmarshalFromXml(MCCIIN000002UV01.class, addMsgMock)).thenReturn(expectedResponseMock); // when(requestXMLToJavaMock.getPIXQueryReqObject(hl7v3XmlMock,PixManagerConstants.ENCODE_STRING)).thenReturn(requestMock); // when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(requestMock)).thenReturn(responseMock); when(pixMgrBeanMock.getQueryIdMap()).thenReturn(queryMapMock); doReturn(pixMgrBeanMock).when(sut).queryPerson(hl7v3XmlMock); // Act final MCCIIN000002UV01 actRetResponse = sut .addPatientRegistryRecord(c32XmlMock); // Assert assertEquals(expectedResponseMock, actRetResponse); } @Test public void testAddPatientRegistryRecord_exception() throws JAXBException, Hl7v3TransformerException { // Arrange final String c32XmlMock = "c32XmlMock"; sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); thrown.expect(AcsShowCaseException.class); // Act when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenThrow(AcsShowCaseException.class); sut.addPatientRegistryRecord(c32XmlMock); } @Test public void testAddPatientRegistryRecord_temp() throws Throwable { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3Xml = "hl7v3Xml"; final String eidMock = "eidMock"; final String addMsgMock = "addMsgMock"; final PixManagerBean pixManagerBeanMock = new PixManagerBean(); final HashMap<String, String> queryMap = new HashMap<String, String>(); queryMap.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eidMock); pixManagerBeanMock.setQueryIdMap(queryMap); // PRPAIN201309UV02 mockPRPAIN201309UV02 = mock(PRPAIN201309UV02.class); // PRPAIN201310UV02 mockPRPAIN201310UV02 = mock(PRPAIN201310UV02.class); final MCCIIN000002UV01 expectedResponseMock = mock(MCCIIN000002UV01.class); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setMarshaller(marshallerMock); // when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)).thenReturn(hl7v3Xml); // when(pixManagerTransformServiceMock.getPixAddXml(c32XmlMock)).thenReturn(hl7v3Xml); when( pixManagerTransformServiceMock.getPixXml(PixOperation.QUERY, c32XmlMock)).thenReturn(hl7v3Xml); when( pixManagerTransformServiceMock.getPixXml(PixOperation.ADD, c32XmlMock)).thenReturn(hl7v3Xml); // when(requestXMLToJavaMock.getPIXQueryReqObject(hl7v3Xml, // PixManagerConstants.ENCODE_STRING)).thenReturn(mockPRPAIN201309UV02); // when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(mockPRPAIN201309UV02)).thenReturn(mockPRPAIN201310UV02); doReturn(pixManagerBeanMock).when(sut).queryPerson(hl7v3Xml); when( xdsbRegistryGetterMock.pidFeed(PixOperation.ADD, hl7v3Xml, eidMock, PixManagerConstants.GLOBAL_DOMAIN_ID)) .thenReturn(addMsgMock); // when(xdsbRegistryGetterMock.addPatientRegistryRecord(hl7v3Xml,eidMock, // PixManagerConstants.GLOBAL_DOMAIN_ID)).thenReturn(addMsgMock); when( marshallerMock.unmarshalFromXml(MCCIIN000002UV01.class, addMsgMock)).thenReturn(expectedResponseMock); // Act final MCCIIN000002UV01 actRetResponse = sut .addPatientRegistryRecord(c32XmlMock); // Assert assertEquals(expectedResponseMock, actRetResponse); } @Test public void testAddPerson() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201301UV02 requestMock = mock(PRPAIN201301UV02.class); final MCCIIN000002UV01 responseMock = mock(MCCIIN000002UV01.class); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); // Act when( requestXMLToJavaMock.getPIXAddReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201301UV02(requestMock)) .thenReturn(responseMock); final String actRet = sut.addPerson(reqMock); // Assert assertTrue("actual value" + actRet, actRet.trim().length() == 0); } @Test public void testAddPerson_exception() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201301UV02 requestMock = mock(PRPAIN201301UV02.class); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); // Act when( requestXMLToJavaMock.getPIXAddReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201301UV02(requestMock)) .thenThrow(JAXBException.class); final String actualObj = sut.addPerson(reqMock); // Assert assertTrue("Actual Add message " + actualObj, actualObj.startsWith("Add Failure! ")); } @Test public void testGetAddUpdateMessage() throws JAXBException { // Arrange final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSample_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_ADD); // Assert assertTrue("Actual Add message " + pixManagerBean.getAddMessage(), pixManagerBean.getAddMessage().startsWith("Add Success! ")); } @Test public void testGetAddUpdateMessage_error() throws JAXBException { final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSampleError_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_ADD); // Assert assertTrue("Actual Add message " + pixManagerBean.getAddMessage(), pixManagerBean.getAddMessage().startsWith("Add Failure! ")); } @Test public void testGetAddUpdateMessage_errorcode() throws JAXBException { final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSampleErrorCode_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_ADD); // Assert assertTrue("Actual Add message " + pixManagerBean.getAddMessage(), pixManagerBean.getAddMessage().startsWith("Add Failure! ")); } @Test public void testGetAddUpdateMessage_Update() throws JAXBException { // Arrange final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSample_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_UPDATE); // Assert assertTrue( "Actual Update message " + pixManagerBean.getUpdateMessage(), pixManagerBean.getUpdateMessage() .startsWith("Update Success! ")); } @Test public void testGetAddUpdateMessage_Update_error() throws JAXBException { final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSampleError_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_UPDATE); // Assert assertTrue( "Actual Update message " + pixManagerBean.getUpdateMessage(), pixManagerBean.getUpdateMessage() .startsWith("Update Failure! ")); } @Test public void testGetAddUpdateMessage_Update_errorcode() throws JAXBException { final MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject( "xml/AddSampleErrorCode_MCCIIN000002UV01.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getAddUpdateMessage(mCCIIN000002UV01, pixManagerBean, PixManagerConstants.PIX_UPDATE); // Assert assertTrue( "Actual Update message " + pixManagerBean.getUpdateMessage(), pixManagerBean.getUpdateMessage() .startsWith("Update Failure! ")); } @Test public void testGetGeneralExpMessage_add() { // Arrange final JAXBException JAXBExceptionMock = mock(JAXBException.class); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getGeneralExpMessage(JAXBExceptionMock, pixManagerBean, PixManagerConstants.PIX_ADD); // Asserts assertTrue("Actual Add message " + pixManagerBean.getAddMessage(), pixManagerBean.getAddMessage().startsWith("Add Failure! ")); } @Test public void testGetGeneralExpMessage_Query() { // Arrange final JAXBException JAXBExceptionMock = mock(JAXBException.class); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getGeneralExpMessage(JAXBExceptionMock, pixManagerBean, PixManagerConstants.PIX_QUERY); // Assert assertTrue("Actual Query message " + pixManagerBean.getQueryMessage(), pixManagerBean.getQueryMessage().startsWith("Query Failure! ")); } @Test public void testGetGeneralExpMessage_Update() { // Arrange final JAXBException JAXBExceptionMock = mock(JAXBException.class); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getGeneralExpMessage(JAXBExceptionMock, pixManagerBean, PixManagerConstants.PIX_UPDATE); // Assert assertTrue( "Actual Update message " + pixManagerBean.getUpdateMessage(), pixManagerBean.getUpdateMessage() .startsWith("Update Failure! ")); } @Test public void testGetQueryMessage() throws JAXBException { // Arrange final PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject( "xml/QuerySample_PRPA_IN201310UV02.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getQueryMessage(pRPAIN201310UV02, pixManagerBean); // Assert assertTrue("Actual query message " + pixManagerBean.getQueryMessage(), pixManagerBean.getQueryMessage().startsWith("Query Success! ")); } @Test public void testGetQueryMessage_error() throws JAXBException { // Arrange final PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject( "xml/QuerySampleError_PRPA_IN201310UV02.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getQueryMessage(pRPAIN201310UV02, pixManagerBean); // Assert assertTrue("Actual query message " + pixManagerBean.getQueryMessage(), pixManagerBean.getQueryMessage().startsWith("Query Failure! ")); } @Test public void testGetQueryMessage_errorcode() throws JAXBException { // Arrange final PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject( "xml/QuerySampleErrorCode_PRPA_IN201310UV02.xml", PixManagerConstants.ENCODE_STRING); final PixManagerBean pixManagerBean = new PixManagerBean(); // Act sut.getQueryMessage(pRPAIN201310UV02, pixManagerBean); // Assert assertTrue("Actual query message " + pixManagerBean.getQueryMessage(), pixManagerBean.getQueryMessage().startsWith("Query Failure! ")); } @Test public void testProvideAndRegisterClinicalDocument() throws JAXBException, IOException, Hl7v3TransformerException { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3Xml = "hl7v3Xml"; final String eidMock = "eidMock"; final PRPAIN201309UV02 mockPRPAIN201309UV02 = new PRPAIN201309UV02(); final PRPAIN201310UV02 mockPRPAIN201310UV02 = new PRPAIN201310UV02(); final PixManagerBean pixManagerBeanMock = new PixManagerBean(); final HashMap<String, String> queryMap = new HashMap<String, String>(); queryMap.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eidMock); final RegistryResponse registryResponseMock = new RegistryResponse(); pixManagerBeanMock.setQueryIdMap(queryMap); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setPixMgrService(pixMgrServiceMock); sut.setXdsbRepository(xdsbRepositoryMock); sut.setXmlAttributeSetter(xmlAttributeSetter); sut.setRequestXMLToJava(requestXMLToJavaMock); when( requestXMLToJavaMock.getPIXQueryReqObject(hl7v3Xml, PixManagerConstants.ENCODE_STRING)).thenReturn( mockPRPAIN201309UV02); when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(mockPRPAIN201309UV02)) .thenReturn(mockPRPAIN201310UV02); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenReturn(hl7v3Xml); when(sut.queryPerson(hl7v3Xml)).thenReturn(pixManagerBeanMock); when( xmlAttributeSetter.setAttributeValue(eq(c32XmlMock), anyString(), anyString(), anyString())) .thenReturn(c32XmlMock).thenReturn(c32XmlMock) .thenReturn(c32XmlMock).thenReturn(c32XmlMock) .thenReturn(c32XmlMock).thenReturn(c32XmlMock); when( xdsbRepositoryMock.provideAndRegisterDocumentSet(c32XmlMock, PixManagerConstants.GLOBAL_DOMAIN_ID, XdsbDocumentType.CLINICAL_DOCUMENT)).thenReturn( registryResponseMock); // Act final RegistryResponse actualResponse = sut .provideAndRegisterClinicalDocument(c32XmlMock); // Assert assertEquals(registryResponseMock, actualResponse); } @Test public void testProvideAndRegisterClinicalDocument_Throws_AcsShowCaseException() throws Hl7v3TransformerException, JAXBException, IOException { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3XmlMock = "hl7v3XmlMock"; final PixManagerBean pixManagerBeanMock = new PixManagerBean(); pixManagerBeanMock.setQueryIdMap(null); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenReturn(hl7v3XmlMock); when( requestXMLToJavaMock.getPIXQueryReqObject(hl7v3XmlMock, PixManagerConstants.ENCODE_STRING)).thenThrow( JAXBException.class); thrown.expect(AcsShowCaseException.class); // Act @SuppressWarnings("unused") final RegistryResponse actualResponse = sut .provideAndRegisterClinicalDocument(c32XmlMock); } @Test public void testProvideAndRegisterClinicalDocument_Throws_Exception() throws JAXBException, IOException, Hl7v3TransformerException { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3Xml = "hl7v3Xml"; final String eidMock = "eidMock"; final PRPAIN201309UV02 mockPRPAIN201309UV02 = new PRPAIN201309UV02(); final PRPAIN201310UV02 mockPRPAIN201310UV02 = new PRPAIN201310UV02(); final PixManagerBean pixManagerBeanMock = new PixManagerBean(); final HashMap<String, String> queryMap = new HashMap<String, String>(); queryMap.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eidMock); pixManagerBeanMock.setQueryIdMap(queryMap); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setPixMgrService(pixMgrServiceMock); sut.setXmlAttributeSetter(xmlAttributeSetter); sut.setRequestXMLToJava(requestXMLToJavaMock); when( requestXMLToJavaMock.getPIXQueryReqObject(hl7v3Xml, PixManagerConstants.ENCODE_STRING)).thenReturn( mockPRPAIN201309UV02); when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(mockPRPAIN201309UV02)) .thenReturn(mockPRPAIN201310UV02); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenReturn(hl7v3Xml); when(sut.queryPerson(hl7v3Xml)).thenReturn(pixManagerBeanMock); when( xmlAttributeSetter.setAttributeValue(eq(c32XmlMock), anyString(), anyString(), anyString())).thenThrow( Exception.class); thrown.expect(AcsShowCaseException.class); // Act @SuppressWarnings("unused") final RegistryResponse actualResponse = sut .provideAndRegisterClinicalDocument(c32XmlMock); } @Test public void testProvideAndRegisterClinicalDocument_Throws_Hl7v3TransformerException() throws Hl7v3TransformerException { // Arrange final String c32XmlMock = "c32XmlMock"; sut.setPixManagerTransformService(pixManagerTransformServiceMock); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenThrow(Hl7v3TransformerException.class); thrown.expect(AcsShowCaseException.class); // Act @SuppressWarnings("unused") final RegistryResponse actualResponse = sut .provideAndRegisterClinicalDocument(c32XmlMock); } @Test public void testProvideAndRegisterClinicalDocument_Throws_XmlAttributeSetterException() throws JAXBException, IOException, Hl7v3TransformerException { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3Xml = "hl7v3Xml"; final String eidMock = "eidMock"; final PRPAIN201309UV02 mockPRPAIN201309UV02 = new PRPAIN201309UV02(); final PRPAIN201310UV02 mockPRPAIN201310UV02 = new PRPAIN201310UV02(); final PixManagerBean pixManagerBeanMock = new PixManagerBean(); final HashMap<String, String> queryMap = new HashMap<String, String>(); queryMap.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eidMock); pixManagerBeanMock.setQueryIdMap(queryMap); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setPixMgrService(pixMgrServiceMock); sut.setXmlAttributeSetter(xmlAttributeSetter); sut.setRequestXMLToJava(requestXMLToJavaMock); when( requestXMLToJavaMock.getPIXQueryReqObject(hl7v3Xml, PixManagerConstants.ENCODE_STRING)).thenReturn( mockPRPAIN201309UV02); when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(mockPRPAIN201309UV02)) .thenReturn(mockPRPAIN201310UV02); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenReturn(hl7v3Xml); when(sut.queryPerson(hl7v3Xml)).thenReturn(pixManagerBeanMock); when( xmlAttributeSetter.setAttributeValue(eq(c32XmlMock), anyString(), anyString(), anyString())).thenThrow( XmlAttributeSetterException.class); thrown.expect(AcsShowCaseException.class); // Act @SuppressWarnings("unused") final RegistryResponse actualResponse = sut .provideAndRegisterClinicalDocument(c32XmlMock); } @Test public void testQueryPerson() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201309UV02 requestMock = mock(PRPAIN201309UV02.class); final PRPAIN201310UV02 responseMock = mock(PRPAIN201310UV02.class); final PixManagerBean pixMgrBean = new PixManagerBean(); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); // Act when( requestXMLToJavaMock.getPIXQueryReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(requestMock)) .thenReturn(responseMock); final PixManagerBean actObj = sut.queryPerson(reqMock); // Assert assertEquals(pixMgrBean.getQueryMessage(), actObj.getQueryMessage()); } @Test public void testQueryPerson_excception() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201309UV02 requestMock = mock(PRPAIN201309UV02.class); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); // Act when( requestXMLToJavaMock.getPIXQueryReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(requestMock)) .thenThrow(JAXBException.class); final PixManagerBean actualObj = sut.queryPerson(reqMock); // Assert assertTrue("Actual Query message " + actualObj.getQueryMessage(), actualObj.getQueryMessage().startsWith("Query Failure! ")); } @Test public void testUpdatePatientRegistryRecord() throws Throwable { // Arrange final String c32XmlMock = "c32XmlMock"; final String hl7v3XmlMock = "hl7v3XmlMock"; final String eIdMock = "eIdMock"; final String updateMsgMock = "updateMsgMock"; // PRPAIN201309UV02 requestMock = mock(PRPAIN201309UV02.class); // PRPAIN201310UV02 responseMock = mock(PRPAIN201310UV02.class); final MCCIIN000002UV01 expectedResponseMock = mock(MCCIIN000002UV01.class); final Map<String, String> queryMapMock = new HashMap<String, String>(); queryMapMock.put(PixManagerConstants.GLOBAL_DOMAIN_ID, eIdMock); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixManagerTransformService(pixManagerTransformServiceMock); sut.setXdsbRegistryGetter(xdsbRegistryGetterMock); sut.setMarshaller(marshallerMock); when( pixManagerTransformServiceMock.getPixXml(PixOperation.QUERY, c32XmlMock)).thenReturn(hl7v3XmlMock); // when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)).thenReturn(hl7v3XmlMock); when( pixManagerTransformServiceMock.getPixXml(PixOperation.UPDATE, c32XmlMock)).thenReturn(hl7v3XmlMock); // when(pixManagerTransformServiceMock.getPixUpdateXml(c32XmlMock)).thenReturn(hl7v3XmlMock); when( xdsbRegistryGetterMock.pidFeed(PixOperation.UPDATE, hl7v3XmlMock, eIdMock, PixManagerConstants.GLOBAL_DOMAIN_ID)).thenReturn( updateMsgMock); // when(xdsbRegistryGetterMock.revisePatientRegistryRecord(hl7v3XmlMock, // eIdMock,PixManagerConstants.GLOBAL_DOMAIN_ID)).thenReturn(updateMsgMock); when( marshallerMock.unmarshalFromXml(MCCIIN000002UV01.class, updateMsgMock)).thenReturn(expectedResponseMock); // when(requestXMLToJavaMock.getPIXQueryReqObject(hl7v3XmlMock,PixManagerConstants.ENCODE_STRING)).thenReturn(requestMock); // when(pixMgrServiceMock.pixManagerPRPAIN201309UV02(requestMock)).thenReturn(responseMock); when(pixMgrBeanMock.getQueryIdMap()).thenReturn(queryMapMock); doReturn(pixMgrBeanMock).when(sut).queryPerson(hl7v3XmlMock); // Act final MCCIIN000002UV01 actRetResponse = sut .revisePatientRegistryRecord(c32XmlMock); // Assert assertEquals(expectedResponseMock, actRetResponse); } @Test public void testUpdatePatientRegistryRecord_Throws_Hl7v3TransformerException() throws Throwable { // Arrange final String c32XmlMock = "c32XmlMock"; sut.setPixManagerTransformService(pixManagerTransformServiceMock); when(pixManagerTransformServiceMock.getPixQueryXml(c32XmlMock)) .thenThrow(Hl7v3TransformerException.class); thrown.expect(AcsShowCaseException.class); // Act @SuppressWarnings("unused") final MCCIIN000002UV01 actRetResponse = sut .revisePatientRegistryRecord(c32XmlMock); } @Test public void testUpdatePerson() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201302UV02 requestMock = mock(PRPAIN201302UV02.class); final MCCIIN000002UV01 responseMock = mock(MCCIIN000002UV01.class); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); // Act when( requestXMLToJavaMock.getPIXUpdateReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201302UV02(requestMock)) .thenReturn(responseMock); final String actRet = sut.updatePerson(reqMock); // Assert assertTrue("actual value" + actRet, actRet.trim().length() == 0); } @Test public void testUpdatePerson_exception() throws JAXBException, IOException { // Arrange final String reqMock = "reqMock"; final PRPAIN201302UV02 requestMock = mock(PRPAIN201302UV02.class); sut.setPixMgrService(pixMgrServiceMock); sut.setRequestXMLToJava(requestXMLToJavaMock); sut.setPixMgrBean(new PixManagerBean()); // Act when( requestXMLToJavaMock.getPIXUpdateReqObject(reqMock, PixManagerConstants.ENCODE_STRING)).thenReturn( requestMock); when(pixMgrServiceMock.pixManagerPRPAIN201302UV02(requestMock)) .thenThrow(JAXBException.class); final String actualObj = sut.updatePerson(reqMock); // Assert assertTrue("Actual update message " + actualObj, actualObj.startsWith("Update Failure! ")); } private Object getPIXResObject(String reqXMLFilePath, String encodeString) throws JAXBException { // 1. We need to create JAXContext instance final JAXBContext jaxbContext = JAXBContext .newInstance(ObjectFactory.class); // 2. Use JAXBContext instance to create the Unmarshaller. final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); if (reqXMLFilePath == null) { throw new JAXBException("input is null"); } // 3. Use the Unmarshaller to unmarshal the XML document to get an // instance of JAXBElement. // 4. Get the instance of the required JAXB Root Class from the // JAXBElement. final Object resObj = unmarshaller.unmarshal(getClass() .getClassLoader().getResourceAsStream(reqXMLFilePath)); return resObj; } }