package org.openehr.build; import java.util.HashMap; import java.util.Map; import org.openehr.rm.RMObject; import org.openehr.rm.common.archetyped.Archetyped; import org.openehr.rm.common.generic.PartySelf; import org.openehr.rm.support.identification.ArchetypeID; import org.openehr.rm.support.identification.TerminologyID; import org.openehr.rm.support.measurement.MeasurementService; import org.openehr.rm.support.measurement.SimpleMeasurementService; import org.openehr.rm.support.terminology.TerminologyService; import org.openehr.terminology.SimpleTerminologyService; public class CommonSupportBuildTest extends BuildTestBase { public CommonSupportBuildTest() throws Exception { builder = new RMObjectBuilder(); ms = SimpleMeasurementService.getInstance(); ts = SimpleTerminologyService.getInstance(); } public void setUp() { valueMap = new HashMap<String, Object>(); } public void testBuildPartySelf() throws Exception { assertBuildRMClass(PartySelf.class); } public void testBuildPartySelfWithUpperCaseUnderscoreClassName() throws Exception { rmObj = builder.construct("PARTY_SELF", valueMap); assertBuildRMClass(PartySelf.class); } public void testBuildTerminologyID() throws Exception { valueMap.put("value", "openehr(1.0)"); assertBuildRMClass(TerminologyID.class); } public void testBuildArchetypeID() throws Exception { valueMap.put("value", "openEHR-EHR-OBSERVATION.blood_pressure.v1"); assertBuildRMClass(ArchetypeID.class); } public void testBuildArchetyped() throws Exception { ArchetypeID archetypeId = new ArchetypeID( "openEHR-EHR-OBSERVATION.blood_pressure.v1"); valueMap.put("archetypeId", archetypeId); valueMap.put("rmVersion", "1.0.1"); assertBuildRMClass(Archetyped.class); } private void assertBuildRMClass(Class rmClass) throws Exception { rmObj = builder.construct(rmClass.getSimpleName(), valueMap); assertTrue("failed to build " + rmClass, rmClass.isInstance(rmObj)); } private Map<String, Object> valueMap; private RMObject rmObj; private RMObjectBuilder builder; private MeasurementService ms; private TerminologyService ts; }