package ca.uhn.fhir.context; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; import org.junit.AfterClass; import org.junit.Test; import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.dstu.resource.Patient; import ca.uhn.fhir.model.dstu.resource.ValueSet; import ca.uhn.fhir.util.TestUtil; public class FhirContextDstu1Test { @SuppressWarnings("deprecation") @Test public void testAutoDetectVersion() { FhirContext ctx = new FhirContext(); assertEquals(FhirVersionEnum.DSTU1, ctx.getVersion().getVersion()); } @Test public void testIncrementalScan() { FhirContext ctx = FhirContext.forDstu1(); RuntimeResourceDefinition vsDef = ctx.getResourceDefinition(ValueSet.class); RuntimeResourceDefinition ptDef = ctx.getResourceDefinition(Patient.class); assertNotNull(ptDef); RuntimeResourceDefinition vsDef2 = ctx.getResourceDefinition(ValueSet.class); assertSame(vsDef, vsDef2); } @Test public void testFindBinary() { RuntimeResourceDefinition def = FhirContext.forDstu1().getResourceDefinition("Binary"); assertEquals("Binary", def.getName()); } @Test(expected = IllegalArgumentException.class) public void testGetResourceDefinitionFails() { FhirContext.forDstu1().getResourceDefinition(IResource.class); } @Test public void testUnknownVersion() { try { Class.forName("org.hl7.fhir.dstu3.model.Patient"); /* * If we found this class, DSTU3 structures are on the classpath so we're probably doing * the cobertura tests.. This one won't work since all structures are on the classpath for * cobertura tests */ return; } catch (ClassNotFoundException e1) { // good } try { new FhirContext(FhirVersionEnum.DSTU2); fail(); } catch (IllegalStateException e) { assertThat(e.getMessage(), containsString("Could not find the HAPI-FHIR structure JAR on the classpath for version DSTU2")); } } @AfterClass public static void afterClassClearContext() { TestUtil.clearAllStaticFieldsForUnitTest(); } }