/**
* CardinalityTest.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 CardinalityTest extends TestCase{
public void testCardinality() throws IOException, XMLStreamException{
StAXModelBuilder modBuild = new StAXModelBuilder("jar:edu/sc/seis/sod/data/validator/cardinality.rng");
//modBuild.getRoot().accept(new FormPrinter(8));
assertTrue(modBuild.getRoot() instanceof NamedElement);
NamedElement nameElRoot = (NamedElement)modBuild.getRoot();
assertEquals("baseElement", nameElRoot.getName());
assertTrue(nameElRoot.getChild() instanceof Group);
Group internalGroup = (Group)nameElRoot.getChild();
Form[] groupKids = internalGroup.getChildren();
assertEquals(4, groupKids.length);
assertTrue(groupKids[0] instanceof NamedElement);
NamedElement optionalEl = (NamedElement)groupKids[0];
assertEquals(0, optionalEl.getMin());
assertEquals(1, optionalEl.getMax());
assertTrue(groupKids[1] instanceof NamedElement);
NamedElement oneOrMoreEl = (NamedElement)groupKids[1];
assertEquals(1, oneOrMoreEl.getMin());
assertEquals(Integer.MAX_VALUE, oneOrMoreEl.getMax());
assertTrue(groupKids[2] instanceof NamedElement);
NamedElement zeroOrMoreEl = (NamedElement)groupKids[2];
assertEquals(0, zeroOrMoreEl.getMin());
assertEquals(Integer.MAX_VALUE, zeroOrMoreEl.getMax());
}
}