/** * AnnotationTest.java * * @author Charles Groves */ package edu.sc.seis.sod.validator.model; import java.io.IOException; import javax.xml.stream.XMLStreamException; import junit.framework.TestCase; public class AnnotationTest extends TestCase{ public void testAnnotationAssignment() throws IOException, XMLStreamException{ StAXModelBuilder modBuild = new StAXModelBuilder("jar:edu/sc/seis/sod/data/validator/annotation.rng"); NamedElement base = (NamedElement)modBuild.getRoot(); assertEquals(base.getName(), base.getAnnotation().getSummary()); Group baseChild = (Group)base.getChild(); Form[] baseChildren = baseChild.getChildren(); for (int i = 0; i < baseChildren.length; i++) { handle(baseChildren[i]); } } private static void handle(Form f){ if(f instanceof NamedElement){ NamedElement cur = (NamedElement)f; assertEquals(cur.getName(), cur.getAnnotation().getSummary()); }else if(f instanceof Choice){ assertEquals("choice", f.getAnnotation().getSummary()); }else if(f instanceof Data){ assertTrue(f.getAnnotation().getInclude()); } } public void testAnnotationOnCardinality() throws IOException, XMLStreamException{ try{ new StAXModelBuilder("jar:edu/sc/seis/sod/data/validator/wrongAnnotation.rng"); assertTrue("Should've thrown a runtime exception when it encountered an Annotation in a cardinality operator", false); }catch(RuntimeException e){ assertTrue(true); } } }