package org.openehr.am.parser;
import java.util.List;
public class KeyedObjectTest extends ParserTestBase {
public void testParseAndVerifySimpleValues() throws Exception {
DADLParser parser = new DADLParser(loadFromClasspath(
"keyed_objects.dadl"));
ContentObject content = parser.parse();
assertNotNull("contentObject is null", content);
assertNull("contentObject.complexObjectBlock is not null",
content.getComplexObjectBlock());
assertNotNull("contentObject.attributeValues is null",
content.getAttributeValues());
assertEquals("contentObject.attributeValues.size wrong", 1,
content.getAttributeValues().size());
AttributeValue av = content.getAttributeValues().get(0);
ObjectBlock ob = av.getValue();
assertTrue("not multiple attribute object block",
ob instanceof MultipleAttributeObjectBlock);
MultipleAttributeObjectBlock maob = (MultipleAttributeObjectBlock) ob;
List<KeyedObject> keyedObjects = maob.getKeyObjects();
assertEquals("total keyed objects wrong", keyedObjects.size(), 2);
assertKeyedObject(keyedObjects.get(0), 1, "name", "systolic");
assertKeyedObject(keyedObjects.get(1), 2, "name", "diastolic");
}
public void testParseCodePhraseAsKey() throws Exception {
DADLParser parser = new DADLParser(loadFromClasspath(
"keyed_objects2.dadl"));
ContentObject content = parser.parse();
assertNotNull("contentObject is null", content);
}
private void assertKeyedObject(KeyedObject ko, int key,
String attribute, String value) {
SimpleValue keyValue = ko.getKey();
assertTrue("key is not int", keyValue instanceof IntegerValue);
IntegerValue iv = (IntegerValue) keyValue;
assertEquals("key value wrong", iv.getValue(), new Integer(key));
ObjectBlock ob = ko.getObject();
assertTrue("value is not single attribute object block, " + ob.getClass(),
ob instanceof SingleAttributeObjectBlock);
SingleAttributeObjectBlock saob = (SingleAttributeObjectBlock) ob;
List<AttributeValue> attributes = saob.getAttributeValues();
assertEquals("total attribute wrong", attributes.size(), 1);
AttributeValue av = attributes.get(0);
assertEquals("attribute id wrong", av.getId(), attribute);
ob = av.getValue();
assertTrue("value is not primitive object block",
ob instanceof PrimitiveObjectBlock);
SimpleValue sv = ((PrimitiveObjectBlock) ob).getSimpleValue();
assertTrue("value is not string", sv instanceof StringValue);
StringValue str = (StringValue) sv;
assertEquals("string value wrong", str.getValue(), value);
}
}