package ca.uhn.fhir.util;
import static org.junit.Assert.fail;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.stream.XMLStreamException;
import org.hl7.fhir.dstu3.model.Patient;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.model.api.Bundle;
import ca.uhn.fhir.parser.DataFormatException;
public class XmlUtilDstu3Test {
private static FhirContext ourCtx = FhirContext.forDstu3();
private Patient myPatient;
@After
public void after() {
XmlUtil.setThrowExceptionForUnitTest(null);
}
@Before
public void before() {
myPatient = new Patient();
myPatient.setId("1");
}
@Test
public void testParseMalformed() {
try {
ourCtx.newXmlParser().parseResource("AAAAA");
fail();
} catch (DataFormatException e) {
// good
}
}
public void testXmlFactoryThrowsXmlStreamException() {
XmlUtil.setThrowExceptionForUnitTest(new XMLStreamException("FOO"));
try {
ourCtx.newXmlParser().parseResource("AAAAA");
fail();
} catch (DataFormatException e) {
// good
}
try {
ourCtx.newXmlParser().encodeResourceToString(myPatient);
fail();
} catch (ConfigurationException e) {
// good
}
try {
ourCtx.newXmlParser().encodeBundleToString(new Bundle());
fail();
} catch (ConfigurationException e) {
// good
}
}
public void testXmlFactoryThrowsFactoryConfigurationError() {
XmlUtil.setThrowExceptionForUnitTest(new FactoryConfigurationError("FOO"));
try {
ourCtx.newXmlParser().parseResource("AAAAA");
fail();
} catch (DataFormatException e) {
// good
}
try {
ourCtx.newXmlParser().encodeResourceToString(myPatient);
fail();
} catch (ConfigurationException e) {
// good
}
}
@AfterClass
public static void afterClassClearContext() {
TestUtil.clearAllStaticFieldsForUnitTest();
}
}