package ca.uhn.fhir.model.dstu2; import static org.junit.Assert.*; import java.util.Properties; import org.hl7.fhir.instance.model.api.IBaseBinary; import org.junit.AfterClass; import org.junit.Test; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.RuntimeResourceDefinition; import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.dstu2.resource.Binary; import ca.uhn.fhir.util.TestUtil; public class ModelInstantiationTest { private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ModelInstantiationTest.class); @AfterClass public static void afterClassClearContext() { TestUtil.clearAllStaticFieldsForUnitTest(); } @Test public void testBinaryIsBaseBinary() { assertTrue(IBaseBinary.class.isAssignableFrom(Binary.class)); } @SuppressWarnings("unchecked") @Test public void testInstantiateAllTypes() throws Exception { FhirContext ctx = FhirContext.forDstu2(); Properties p = new Properties(); p.load(ctx.getVersion().getFhirVersionPropertiesFile()); for (Object next : p.keySet()) { String nextStr = (String)next; if (nextStr.startsWith("resource.")) { nextStr = nextStr.substring("resource.".length()); } else { continue; } String className = p.getProperty((String) next); ourLog.info("Loading class: {}", className); Class<? extends IResource> clazz = (Class<? extends IResource>) Class.forName(className); RuntimeResourceDefinition def = ctx.getResourceDefinition(clazz); def.newInstance(); } } }