/*
*
*/
package org.castor.xml.schema.writer;
import org.exolab.castor.xml.schema.ComplexType;
import org.exolab.castor.xml.schema.ElementDecl;
import org.exolab.castor.xml.schema.Group;
import org.exolab.castor.xml.schema.Order;
import org.exolab.castor.xml.schema.Particle;
/**
* @author <a href="mailto:bao.leduc@orange-ftgroup.com">Le Duc Bao</a>
* @version 1.0
* @since 5 oct. 08 11:30:54
*/
public class GroupTest extends AbstractSchemaTest {
public GroupTest(String testcase) {
super(testcase);
}
// /**
// * Create simple type
// */
// public void testOneChildSubgroup() throws Exception {
//
// // create targeted schema
// ComplexType ctype = _schema.createComplexType();
// ctype.setName("myType");
// _schema.addComplexType(ctype);
//
// // create a sequence element
// Group groupTest = new Group();
// groupTest.setOrder(Order.seq);
// ctype.addGroup(groupTest);
//
// // create a choice element for sequence element
// Group subgroup = new Group();
// subgroup.setOrder(Order.choice);
// subgroup.setMinOccurs(0);
// subgroup.setMaxOccurs(Particle.UNBOUNDED);
// groupTest.addGroup(subgroup);
//
// // create an element for choice
// ElementDecl elem = new ElementDecl(_schema);
// elem.setName("myStringType");
// elem.setTypeReference("string");
// subgroup.addElementDecl(elem);
//
// // compare
// TestResult result = doTest("group_onechildsubgroup.xsd");
// assertEquals("single attribute test failed", TestResult.IDENTICAL,
// result);
// }
/**
* Create simple type
*/
public void testSubgroupWithAnElement() throws Exception {
// create targeted schema
ComplexType ctype = _schema.createComplexType();
ctype.setName("myType");
_schema.addComplexType(ctype);
// create a sequence element
Group group = new Group();
group.setOrder(Order.sequence);
ctype.addGroup(group);
// create a choice element for sequence element
Group subgroup = new Group();
subgroup.setOrder(Order.choice);
subgroup.setMinOccurs(0);
subgroup.setMaxOccurs(Particle.UNBOUNDED);
group.addGroup(subgroup);
// create an element for choice
ElementDecl elem = new ElementDecl(_schema);
elem.setName("myStringType");
elem.setTypeReference("string");
subgroup.addElementDecl(elem);
elem = new ElementDecl(_schema);
elem.setName("myStringType2");
elem.setTypeReference("string");
group.addElementDecl(elem);
// compare
TestResult result = doTest("group_subgroupwithanelement.xsd");
assertEquals("single attribute test failed", TestResult.IDENTICAL,
result);
}
/**
* Create simple type
*/
public void test2Subgroups() throws Exception {
// create targeted schema
ComplexType ctype = _schema.createComplexType();
ctype.setName("myType");
_schema.addComplexType(ctype);
// create a sequence element
Group group = new Group();
group.setOrder(Order.sequence);
ctype.addGroup(group);
// create a choice element for sequence element
Group subgroup = new Group();
subgroup.setOrder(Order.choice);
subgroup.setMinOccurs(0);
subgroup.setMaxOccurs(Particle.UNBOUNDED);
group.addGroup(subgroup);
// create an element for choice
ElementDecl elem = new ElementDecl(_schema);
elem.setName("myStringType");
elem.setTypeReference("string");
subgroup.addElementDecl(elem);
// create a choice element for sequence element
subgroup = new Group();
subgroup.setOrder(Order.choice);
subgroup.setMinOccurs(0);
subgroup.setMaxOccurs(Particle.UNBOUNDED);
group.addGroup(subgroup);
// create an element for choice
elem = new ElementDecl(_schema);
elem.setName("myStringType2");
elem.setTypeReference("string");
subgroup.addElementDecl(elem);
// compare
TestResult result = doTest("group_2subgroups.xsd");
assertEquals("single attribute test failed", TestResult.IDENTICAL,
result);
}
}