package org.openehr.am.serialize;
import java.io.InputStream;
import java.io.StringReader;
import org.openehr.am.archetype.Archetype;
import se.acode.openehr.parser.ADLParser;
public class RoundTripTest extends SerializerTestBase {
public void testRoundTripOnSimpleEvaluation() throws Exception {
adlFile = "openEHR-EHR-EVALUATION.test_concept.v1.adl";
ADLParser parser = new ADLParser(loadFromClasspath(adlFile));
Archetype archetype = parser.parse();
outputter.output(archetype, out);
parser.ReInit(new StringReader(out.toString()));
Archetype roundTripedArchetype = parser.parse();
assertEquals("adlVersion diff", archetype.getAdlVersion(),
roundTripedArchetype.getAdlVersion());
assertEquals("archetypeId diff", archetype.getArchetypeId(),
roundTripedArchetype.getArchetypeId());
assertEquals("concept diff", archetype.getConcept(),
roundTripedArchetype.getConcept());
assertEquals("definition diff", archetype.getDefinition(),
roundTripedArchetype.getDefinition());
// TODO skipped problematic description comparison
// assertEquals("description diff", archetype.getDescription(),
// roundTripedArchetype.getDescription());
assertEquals("ontology diff", archetype.getOntology(),
roundTripedArchetype.getOntology());
assertEquals("original language diff", archetype.getOriginalLanguage(),
roundTripedArchetype.getOriginalLanguage());
}
private InputStream loadFromClasspath(String adl) throws Exception {
return this.getClass().getClassLoader().getResourceAsStream(adl);
}
}