package gov.samhsa.consent2share.pixclient.util;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.hl7.v3.types.MCCIIN000002UV01;
import org.hl7.v3.types.ObjectFactory;
import org.hl7.v3.types.PRPAIN201310UV02;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class PixManagerMessageHelperTest {
private PixManagerMessageHelper sut;
@Before
public void setUp() throws Exception {
sut = new PixManagerMessageHelper();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testGetGeneralExpMessage_add() {
// Arrange
JAXBException JAXBExceptionMock = mock(JAXBException.class);
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_Update() {
// Arrange
JAXBException JAXBExceptionMock = mock(JAXBException.class);
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 testGetGeneralExpMessage_Query() {
// Arrange
JAXBException JAXBExceptionMock = mock(JAXBException.class);
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 testGetAddUpdateMessage() throws JAXBException {
// Arrange
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSample_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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 {
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSampleError_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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 {
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSampleErrorCode_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSample_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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 {
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSampleError_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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 {
MCCIIN000002UV01 mCCIIN000002UV01 = (MCCIIN000002UV01) getPIXResObject(
"xml/AddSampleErrorCode_MCCIIN000002UV01.xml",
PixManagerConstants.ENCODE_STRING);
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 testGetQueryMessage() throws JAXBException {
// Arrange
PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject(
"xml/QuerySample_PRPA_IN201310UV02.xml",
PixManagerConstants.ENCODE_STRING);
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
PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject(
"xml/QuerySampleError_PRPA_IN201310UV02.xml",
PixManagerConstants.ENCODE_STRING);
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
PRPAIN201310UV02 pRPAIN201310UV02 = (PRPAIN201310UV02) getPIXResObject(
"xml/QuerySampleErrorCode_PRPA_IN201310UV02.xml",
PixManagerConstants.ENCODE_STRING);
PixManagerBean pixManagerBean = new PixManagerBean();
// Act
sut.getQueryMessage(pRPAIN201310UV02, pixManagerBean);
// Assert
assertTrue("Actual query message " + pixManagerBean.getQueryMessage(),
pixManagerBean.getQueryMessage().startsWith("Query Failure! "));
}
private Object getPIXResObject(String reqXMLFilePath, String encodeString)
throws JAXBException {
// 1. We need to create JAXContext instance
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
// 2. Use JAXBContext instance to create the Unmarshaller.
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.
Object resObj = unmarshaller.unmarshal(getClass().getClassLoader()
.getResourceAsStream(reqXMLFilePath));
return resObj;
}
}