package org.openehr.build; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.openehr.rm.RMObject; import org.openehr.rm.datatypes.quantity.DvCount; import org.openehr.rm.datatypes.quantity.DvInterval; import org.openehr.rm.datatypes.quantity.DvOrdered; import org.openehr.rm.datatypes.quantity.ReferenceRange; import org.openehr.rm.datatypes.text.DvText; public class BuildDvCountTest extends BuildTestBase { public void setUp() throws Exception { super.setUp(); type = "DvCount"; values = new HashMap<String, Object>(); } public void tearDown() throws Exception { super.tearDown(); obj = null; } public void testBuildDvCountWithOtherReferenceRanges() throws Exception { Map<String, Object> values = new HashMap<String, Object>(); DvText normal = new DvText(ReferenceRange.NORMAL, lang, charset, ts); DvCount lower = new DvCount(1); DvCount upper = new DvCount(10); ReferenceRange<DvCount> normalRange = new ReferenceRange<DvCount>( normal, new DvInterval<DvCount>(lower, upper)); List<ReferenceRange<DvCount>> otherReferenceRanges = new ArrayList<ReferenceRange<DvCount>>(); otherReferenceRanges.add(normalRange); values.put("otherReferenceRanges", otherReferenceRanges); values.put("magnitude", new Integer(5)); obj = builder.construct(type, values); assertTrue(obj instanceof DvCount); DvCount count = (DvCount) obj; assertEquals("magnitude", 5, count.getMagnitude().intValue()); assertEquals("otherReferenceRanges", otherReferenceRanges, count.getOtherReferenceRanges()); assertEquals("accuracy", 0.0, count.getAccuracy()); assertEquals("accuracyPercent", false, count.isAccuracyPercent()); } public void testBuildDvCountWithoutReferenceRanges() throws Exception { values.put("magnitude", 3); obj = builder.construct(type, values); assertTrue(obj instanceof DvCount); DvCount count = (DvCount) obj; assertEquals("magnitude", 3, count.getMagnitude().intValue()); assertEquals("referenceRanges", null, count.getOtherReferenceRanges()); assertEquals("accuracy", 0.0, count.getAccuracy()); assertEquals("accuracyPercent", false, count.isAccuracyPercent()); } public void testBuildDvCountWithGoodStringValue() throws Exception { values.put("magnitude", "10"); obj = builder.construct(type, values); assertTrue(obj instanceof DvCount); } public void testBuildDvCountWithBadStringValue() throws Exception { values.put("magnitude", "wrong type"); try { obj = builder.construct(type, values); fail("attribute format exception should be thrown here"); } catch (Exception e) { assertTrue(e instanceof AttributeFormatException); } } private String type = "DvCount"; private Map<String, Object> values; private RMObject obj; }