package gov.samhsa.acs.documentsegmentation.tools;
import static org.junit.Assert.assertTrue;
import gov.samhsa.acs.common.exception.DS4PException;
import gov.samhsa.acs.common.tool.FileReaderImpl;
import gov.samhsa.acs.common.tool.SimpleMarshaller;
import gov.samhsa.acs.common.tool.SimpleMarshallerImpl;
import gov.samhsa.acs.common.tool.XmlTransformer;
import gov.samhsa.acs.common.tool.XmlTransformerImpl;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MetadataGeneratorImplTest {
private static FileReaderImpl fileReader;
private static SimpleMarshaller marshaller;
private static XmlTransformer xmlTransformer;
private static String c32;
private static String executionResponseContainer;
private static String homeCommunityId;
private static String senderEmailAddress;
private static String recipientEmailAddress;
private static MetadataGeneratorImpl metadataGenerator;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Test
public void testGenerateMetadataXml() throws Exception {
// Act
final String metadata = metadataGenerator.generateMetadataXml(c32,
executionResponseContainer, homeCommunityId,
senderEmailAddress, recipientEmailAddress);
logger.debug(metadata);
// Assert
assertTrue(metadata
.contains("<Value>PatientID^^^&2.16.840.1.113883.3.467&ISO</Value>"));
assertTrue(metadata
.contains("<Value>^^Internet^leo.smith@direct.obhita-stage.org</Value>"));
assertTrue(metadata
.contains("<Value>^^Internet^Duane_Decouteau@direct.healthvault-stage.com</Value>"));
assertTrue(metadata.contains("<Value>TREAT</Value>"));
assertTrue(metadata
.contains("<Value observationId=\"d11275e7-67ae-11db-bd13-0800200c9a66\">ENCRYPT</Value>"));
assertTrue(metadata
.contains("<Value observationId=\"d11275e7-67ae-11db-bd13-0800200c9a66\">NORDSLCD</Value>"));
assertTrue(metadata
.contains("<Value observationId=\"d11275e7-67ae-11db-bd13-0800200c9a66\">HIV</Value>"));
assertTrue(metadata
.contains("<Value observationId=\"d11275e7-67ae-11db-bd13-0800200c9a66\">42CFRPart2</Value>"));
assertTrue(metadata
.contains("<Value>100010020002^^^&2.16.840.1.113883.3.467&ISO</Value>"));
}
@Test(expected = DS4PException.class)
public void testGenerateMetadataXml_Throws_DS4PException() {
// Empty xml file
@SuppressWarnings("unused")
final String metadata = metadataGenerator.generateMetadataXml("",
executionResponseContainer, homeCommunityId,
senderEmailAddress, recipientEmailAddress);
}
@BeforeClass
public static void setUp() throws Exception {
// Arrange
fileReader = new FileReaderImpl();
c32 = fileReader.readFile("sampleC32/c32.xml");
executionResponseContainer = fileReader
.readFile("ruleExecutionResponseContainer.xml");
homeCommunityId = "2.16.840.1.113883.3.467";
senderEmailAddress = "leo.smith@direct.obhita-stage.org";
recipientEmailAddress = "Duane_Decouteau@direct.healthvault-stage.com";
marshaller = new SimpleMarshallerImpl();
xmlTransformer = new XmlTransformerImpl(marshaller);
metadataGenerator = new MetadataGeneratorImpl(xmlTransformer);
}
}