[jboss-svn-commits] JBoss Common SVN: r3007 - in jbossxb/trunk/src: test/java/org/jboss/test/xb/builder and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 4 10:59:19 EST 2009
Author: alex.loubyansky at jboss.com
Date: 2009-03-04 10:59:18 -0500 (Wed, 04 Mar 2009)
New Revision: 3007
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java
jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java
Log:
JBXB-188
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -242,8 +242,7 @@
++occurence;
return true;
}
- else
- return false;
+ return false;
}
public abstract boolean isWildcardContent();
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -443,7 +443,6 @@
if( trace )
log.trace("getInputSource, nsURI="+nsURI+", baseURI="+baseURI+", schemaLocation="+schemaLocation);
- System.out.println("getInputSource, nsURI="+nsURI+", baseURI="+baseURI+", schemaLocation="+schemaLocation);
// First try what is requested
try
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -27,6 +27,7 @@
import org.jboss.test.AbstractTestCaseWithSetup;
import org.jboss.test.AbstractTestDelegate;
import org.jboss.util.UnreachableStatementException;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.MultiClassSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.DefaultHandlers;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
@@ -35,6 +36,7 @@
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
import org.jboss.xb.builder.runtime.BuilderParticleHandler;
import org.jboss.test.xml.JBossXBTestDelegate;
@@ -265,8 +267,8 @@
protected TermBinding assertSingleSequence(TermBinding term)
{
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
- SequenceBinding sequence = (SequenceBinding) term;
+ assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+ ModelGroupBinding sequence = (ModelGroupBinding) term;
Collection<ParticleBinding> particles = sequence.getParticles();
assertTrue(particles.size() == 1);
ParticleBinding particle = particles.iterator().next();
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -42,6 +42,9 @@
import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
/**
@@ -177,24 +180,43 @@
Collection<ParticleBinding> particles = group.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> particleIterator = particles.iterator();
- ParticleBinding particle = particleIterator.next();
+ ElementBinding child;
+ ElementBinding rootName;
+ if(group instanceof SequenceBinding)
+ {
+ child = (ElementBinding) particleIterator.next().getTerm();
+ rootName = (ElementBinding) particleIterator.next().getTerm();
+ }
+ else
+ {
+ ParticleBinding particle = particleIterator.next();
+ ElementBinding el = (ElementBinding) particle.getTerm();
+ if(el.getQName().equals(new QName("ns.root", "child")))
+ {
+ child = el;
+ rootName = (ElementBinding) particleIterator.next().getTerm();
+ }
+ else
+ {
+ child = (ElementBinding) particleIterator.next().getTerm();
+ rootName = el;
+ }
+ }
+
// child
- e = (ElementBinding) particle.getTerm();
- assertEquals(new QName("ns.root", "child"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ assertEquals(new QName("ns.root", "child"), child.getQName());
+ group = (ModelGroupBinding) child.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
- particle = particles.iterator().next();
+ ParticleBinding particle = particles.iterator().next();
// child/name
e = (ElementBinding) particle.getTerm();
assertEquals(new QName("ns.root", "name"), e.getQName());
// rootName
- particle = particleIterator.next();
- e = (ElementBinding) particle.getTerm();
- assertEquals(new QName("ns.root", "root-name"), e.getQName());
+ assertEquals(new QName("ns.root", "root-name"), rootName.getQName());
}
public void testApplyToElementFalseApplyToTypeTrue()
@@ -212,24 +234,43 @@
Collection<ParticleBinding> particles = group.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> particleIterator = particles.iterator();
- ParticleBinding particle = particleIterator.next();
+
+ ElementBinding child;
+ ElementBinding rootName;
+ if(group instanceof SequenceBinding)
+ {
+ child = (ElementBinding) particleIterator.next().getTerm();
+ rootName = (ElementBinding) particleIterator.next().getTerm();
+ }
+ else
+ {
+ ParticleBinding particle = particleIterator.next();
+ ElementBinding el = (ElementBinding) particle.getTerm();
+ if(el.getQName().equals(new QName("ns.root", "child")))
+ {
+ child = el;
+ rootName = (ElementBinding) particleIterator.next().getTerm();
+ }
+ else
+ {
+ child = (ElementBinding) particleIterator.next().getTerm();
+ rootName = el;
+ }
+ }
// child
- e = (ElementBinding) particle.getTerm();
- assertEquals(new QName("ns.root", "child"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ assertEquals(new QName("ns.root", "child"), child.getQName());
+ group = (ModelGroupBinding) child.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
- particle = particles.iterator().next();
+ ParticleBinding particle = particles.iterator().next();
// child/name
e = (ElementBinding) particle.getTerm();
assertEquals(new QName("ns.child", "name"), e.getQName());
// rootName
- particle = particleIterator.next();
- e = (ElementBinding) particle.getTerm();
- assertEquals(new QName("ns.root", "root-name"), e.getQName());
+ assertEquals(new QName("ns.root", "root-name"), rootName.getQName());
}
public void testApplyToElementTrueApplyToTypeTrueGroup() throws Exception
@@ -242,8 +283,29 @@
Collection<ParticleBinding> particles = group.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> iterator = particles.iterator();
-
- group = (ModelGroupBinding) iterator.next().getTerm();
+
+ ElementBinding idElement;
+ if(group instanceof SequenceBinding)
+ {
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ assertTrue(group instanceof UnorderedSequenceBinding);
+ TermBinding t = iterator.next().getTerm();
+ if(t.isElement())
+ {
+ idElement = (ElementBinding) t;
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ group = (ModelGroupBinding) t;
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ }
+
assertEquals(new QName("anotherNs", "group"), group.getQName());
particles = group.getParticles();
assertEquals(2, particles.size());
@@ -253,8 +315,7 @@
e = (ElementBinding) groupIterator.next().getTerm();
assertEquals(new QName("anotherNs", "text"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "id"), e.getQName());
+ assertEquals(new QName("ns", "id"), idElement.getQName());
}
public void testApplyToElementFalseApplyToTypeTrueGroup() throws Exception
@@ -268,7 +329,28 @@
assertEquals(2, particles.size());
Iterator<ParticleBinding> iterator = particles.iterator();
- group = (ModelGroupBinding) iterator.next().getTerm();
+ ElementBinding idElement;
+ if(group instanceof SequenceBinding)
+ {
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ assertTrue(group instanceof UnorderedSequenceBinding);
+ TermBinding t = iterator.next().getTerm();
+ if(t.isElement())
+ {
+ idElement = (ElementBinding) t;
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ group = (ModelGroupBinding) t;
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ }
+
assertEquals(new QName("ns", "group"), group.getQName());
particles = group.getParticles();
assertEquals(2, particles.size());
@@ -278,8 +360,7 @@
e = (ElementBinding) groupIterator.next().getTerm();
assertEquals(new QName("anotherNs", "text"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "id"), e.getQName());
+ assertEquals(new QName("ns", "id"), idElement.getQName());
}
public void testApplyToElementTrueApplyToTypeFalseGroup() throws Exception
@@ -293,7 +374,28 @@
assertEquals(2, particles.size());
Iterator<ParticleBinding> iterator = particles.iterator();
- group = (ModelGroupBinding) iterator.next().getTerm();
+ ElementBinding idElement;
+ if(group instanceof SequenceBinding)
+ {
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ assertTrue(group instanceof UnorderedSequenceBinding);
+ TermBinding t = iterator.next().getTerm();
+ if(t.isElement())
+ {
+ idElement = (ElementBinding) t;
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ group = (ModelGroupBinding) t;
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ }
+
assertEquals(new QName("anotherNs", "group"), group.getQName());
particles = group.getParticles();
assertEquals(2, particles.size());
@@ -303,8 +405,7 @@
e = (ElementBinding) groupIterator.next().getTerm();
assertEquals(new QName("ns", "text"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "id"), e.getQName());
+ assertEquals(new QName("ns", "id"), idElement.getQName());
}
public void testApplyToElementFalseApplyToTypeFalseGroup() throws Exception
@@ -318,7 +419,28 @@
assertEquals(2, particles.size());
Iterator<ParticleBinding> iterator = particles.iterator();
- group = (ModelGroupBinding) iterator.next().getTerm();
+ ElementBinding idElement;
+ if(group instanceof SequenceBinding)
+ {
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ assertTrue(group instanceof UnorderedSequenceBinding);
+ TermBinding t = iterator.next().getTerm();
+ if(t.isElement())
+ {
+ idElement = (ElementBinding) t;
+ group = (ModelGroupBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ group = (ModelGroupBinding) t;
+ idElement = (ElementBinding) iterator.next().getTerm();
+ }
+ }
+
assertEquals(new QName("ns", "group"), group.getQName());
particles = group.getParticles();
assertEquals(2, particles.size());
@@ -328,8 +450,7 @@
e = (ElementBinding) groupIterator.next().getTerm();
assertEquals(new QName("ns", "text"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "id"), e.getQName());
+ assertEquals(new QName("ns", "id"), idElement.getQName());
}
public void testGroupWithJBossXmlNsProperty() throws Exception
@@ -345,33 +466,57 @@
assertEquals(4, particles.size());
Iterator<ParticleBinding> iterator = particles.iterator();
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("childNs", "group-true-content-false"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ ElementBinding gtcf = null;
+ ElementBinding gfcf = null;
+ ElementBinding gtct = null;
+ ElementBinding gfct = null;
+ if(group instanceof SequenceBinding)
+ {
+ gtcf = (ElementBinding) iterator.next().getTerm();
+ gfcf = (ElementBinding) iterator.next().getTerm();
+ gtct = (ElementBinding) iterator.next().getTerm();
+ gfct = (ElementBinding) iterator.next().getTerm();
+ }
+ else
+ {
+ assertTrue(group instanceof UnorderedSequenceBinding);
+ while(iterator.hasNext())
+ {
+ ElementBinding el = (ElementBinding) iterator.next().getTerm();
+ if(el.getQName().getLocalPart().equals("group-true-content-false"))
+ gtcf = el;
+ else if(el.getQName().getLocalPart().equals("group-false-content-false"))
+ gfcf = el;
+ else if(el.getQName().getLocalPart().equals("group-true-content-true"))
+ gtct = el;
+ else if(el.getQName().getLocalPart().equals("group-false-content-true"))
+ gfct = el;
+ }
+ }
+
+ assertEquals(new QName("childNs", "group-true-content-false"), gtcf.getQName());
+ group = (ModelGroupBinding) gtcf.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
e = (ElementBinding) particles.iterator().next().getTerm();
assertEquals(new QName("ns", "name"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "group-false-content-false"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ assertEquals(new QName("ns", "group-false-content-false"), gfcf.getQName());
+ group = (ModelGroupBinding) gfcf.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
e = (ElementBinding) particles.iterator().next().getTerm();
assertEquals(new QName("ns", "name"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("childNs", "group-true-content-true"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ assertEquals(new QName("childNs", "group-true-content-true"), gtct.getQName());
+ group = (ModelGroupBinding) gtct.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
e = (ElementBinding) particles.iterator().next().getTerm();
assertEquals(new QName("childNs", "name"), e.getQName());
- e = (ElementBinding) iterator.next().getTerm();
- assertEquals(new QName("ns", "group-false-content-true"), e.getQName());
- group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+ assertEquals(new QName("ns", "group-false-content-true"), gfct.getQName());
+ group = (ModelGroupBinding) gfct.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
e = (ElementBinding) particles.iterator().next().getTerm();
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -33,11 +33,13 @@
import org.jboss.test.xb.builder.AbstractBuilderTest;
import org.jboss.test.xb.builder.object.type.accessor.support.Alpha;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
/**
@@ -79,8 +81,8 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
- SequenceBinding sequence = (SequenceBinding) term;
+ assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+ ModelGroupBinding sequence = (ModelGroupBinding) term;
List<QName> elements = new ArrayList<QName>();
Collection<ParticleBinding> particles = sequence.getParticles();
for (ParticleBinding p : particles)
@@ -93,6 +95,14 @@
expected.add(new QName(XMLConstants.NULL_NS_URI, "one"));
expected.add(new QName(XMLConstants.NULL_NS_URI, "three"));
expected.add(new QName(XMLConstants.NULL_NS_URI, "two"));
- assertEquals(expected, elements);
+
+ if(sequence instanceof SequenceBinding)
+ assertEquals(expected, elements);
+ else
+ {
+ assertTrue(sequence instanceof UnorderedSequenceBinding);
+ assertEquals(expected.size(), elements.size());
+ assertTrue(expected.containsAll(elements));
+ }
}
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -33,11 +33,13 @@
import org.jboss.test.xb.builder.AbstractBuilderTest;
import org.jboss.test.xb.builder.object.type.accessor.support.Sequence;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
/**
@@ -79,8 +81,8 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
- SequenceBinding sequence = (SequenceBinding) term;
+ assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+ ModelGroupBinding sequence = (ModelGroupBinding) term;
List<QName> elements = new ArrayList<QName>();
Collection<ParticleBinding> particles = sequence.getParticles();
for (ParticleBinding p : particles)
@@ -93,6 +95,13 @@
expected.add(new QName(XMLConstants.NULL_NS_URI, "three"));
expected.add(new QName(XMLConstants.NULL_NS_URI, "two"));
expected.add(new QName(XMLConstants.NULL_NS_URI, "one"));
- assertEquals(expected, elements);
+
+ if(sequence instanceof SequenceBinding)
+ assertEquals(expected, elements);
+ else
+ {
+ assertEquals(expected.size(), elements.size());
+ assertTrue(expected.containsAll(elements));
+ }
}
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -53,11 +53,13 @@
import org.jboss.xb.binding.sunday.unmarshalling.AllBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ChoiceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
/**
@@ -271,21 +273,43 @@
ElementBinding e = schema.getElement(new QName("root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
assertParticleChoiceBinding(s);
}
- private void assertParticleChoiceBinding(SequenceBinding s)
+ private void assertParticleChoiceBinding(ModelGroupBinding s)
{
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- ParticleBinding p = i.next();
- TermBinding t = p.getTerm();
+
+ ParticleBinding choiceParticle;
+ ParticleBinding elementParticle;
+ if(s instanceof SequenceBinding)
+ {
+ choiceParticle = i.next();
+ elementParticle = i.next();
+ }
+ else
+ {
+ ParticleBinding p = i.next();
+ if(p.getTerm().isModelGroup())
+ {
+ choiceParticle = p;
+ elementParticle = i.next();
+ }
+ else
+ {
+ elementParticle = p;
+ choiceParticle = i.next();
+ }
+ }
+
+ TermBinding t = choiceParticle.getTerm();
assertTrue(t instanceof ChoiceBinding);
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
+ assertEquals(1, choiceParticle.getMaxOccurs());
+ assertFalse(choiceParticle.getMaxOccursUnbounded());
ChoiceBinding c = (ChoiceBinding) t;
particles = c.getParticles();
@@ -298,7 +322,7 @@
assertTrue(t.isElement());
assertEquals(new QName("b"), ((ElementBinding)t).getQName());
- t = i.next().getTerm();
+ t = elementParticle.getTerm();
assertTrue(t.isElement());
assertEquals(new QName("e"), ((ElementBinding)t).getQName());
}
@@ -311,8 +335,8 @@
TypeBinding type = e.getType();
TermBinding t = type.getParticle().getTerm();
assertNull(type.getSimpleType());
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(1, particles.size());
ParticleBinding p = particles.iterator().next();
@@ -329,23 +353,44 @@
assertNotNull(type.getSimpleType());
t = type.getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- particles = ((SequenceBinding)t).getParticles();
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ particles = ((ModelGroupBinding)t).getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- p = i.next();
- t = p.getTerm();
+
+ ParticleBinding choiceParticle;
+ ParticleBinding elementParticle;
+ if(t instanceof SequenceBinding)
+ {
+ elementParticle = i.next();
+ choiceParticle = i.next();
+ }
+ else
+ {
+ p = i.next();
+ if (p.getTerm().isElement())
+ {
+ elementParticle = p;
+ choiceParticle = i.next();
+ }
+ else
+ {
+ choiceParticle = p;
+ elementParticle = i.next();
+ }
+ }
+
+ t = elementParticle.getTerm();
assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
+ assertEquals(0, elementParticle.getMinOccurs());
+ assertEquals(1, elementParticle.getMaxOccurs());
+ assertFalse(elementParticle.getMaxOccursUnbounded());
assertEquals(new QName("e"), ((ElementBinding)t).getQName());
- p = i.next();
- t = p.getTerm();
+ t = choiceParticle.getTerm();
assertTrue(t instanceof ChoiceBinding);
- assertEquals(1, p.getMaxOccurs());
- assertTrue(p.getMaxOccursUnbounded());
+ assertEquals(1, choiceParticle.getMaxOccurs());
+ assertTrue(choiceParticle.getMaxOccursUnbounded());
ChoiceBinding c = (ChoiceBinding) t;
particles = c.getParticles();
@@ -365,16 +410,39 @@
ElementBinding e = schema.getElement(new QName("root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- ParticleBinding p = i.next();
- t = p.getTerm();
+
+
+ ParticleBinding choiceParticle;
+ ParticleBinding elementParticle;
+ if(t instanceof SequenceBinding)
+ {
+ choiceParticle = i.next();
+ elementParticle = i.next();
+ }
+ else
+ {
+ ParticleBinding p = i.next();
+ if (p.getTerm().isElement())
+ {
+ elementParticle = p;
+ choiceParticle = i.next();
+ }
+ else
+ {
+ choiceParticle = p;
+ elementParticle = i.next();
+ }
+ }
+
+ t = choiceParticle.getTerm();
assertTrue(t instanceof ChoiceBinding);
- assertEquals(1, p.getMaxOccurs());
- assertTrue(p.getMaxOccursUnbounded());
+ assertEquals(1, choiceParticle.getMaxOccurs());
+ assertTrue(choiceParticle.getMaxOccursUnbounded());
ChoiceBinding c = (ChoiceBinding) t;
particles = c.getParticles();
@@ -387,7 +455,7 @@
assertTrue(t.isElement());
assertEquals(new QName("b"), ((ElementBinding)t).getQName());
- t = i.next().getTerm();
+ t = elementParticle.getTerm();
assertTrue(t.isElement());
assertEquals(new QName("e"), ((ElementBinding)t).getQName());
}
@@ -398,29 +466,50 @@
ElementBinding e = schema.getElement(new QName("main-root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ Collection<ParticleBinding> particles = ((ModelGroupBinding)t).getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- ParticleBinding p = i.next();
- t = p.getTerm();
+
+ ParticleBinding group1Particle;
+ ParticleBinding group2Particle;
+ if(t instanceof SequenceBinding)
+ {
+ group1Particle = i.next();
+ group2Particle = i.next();
+ }
+ else
+ {
+ ParticleBinding p = i.next();
+ if(((ElementBinding)p.getTerm()).getQName().equals(new QName("group1")))
+ {
+ group1Particle = p;
+ group2Particle = i.next();
+ }
+ else
+ {
+ group2Particle = p;
+ group1Particle = i.next();
+ }
+ }
+
+ t = group1Particle.getTerm();
assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
- e = (ElementBinding) t;
- assertEquals(new QName("group1"), e.getQName());
- assertPropertiesSequenceBinding((SequenceBinding)e.getType().getParticle().getTerm(), false);
+ assertEquals(0, group1Particle.getMinOccurs());
+ assertEquals(1, group1Particle.getMaxOccurs());
+ assertFalse(group1Particle.getMaxOccursUnbounded());
+ ElementBinding e1 = (ElementBinding) t;
+ assertEquals(new QName("group1"), e1.getQName());
+ assertPropertiesSequenceBinding((ModelGroupBinding)e1.getType().getParticle().getTerm(), false);
- p = i.next();
- t = p.getTerm();
+ t = group2Particle.getTerm();
assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
- e = (ElementBinding) t;
- assertEquals(new QName("group2"), e.getQName());
- assertPropertiesSequenceBinding((SequenceBinding)e.getType().getParticle().getTerm(), false);
+ assertEquals(0, group2Particle.getMinOccurs());
+ assertEquals(1, group2Particle.getMaxOccurs());
+ assertFalse(group2Particle.getMaxOccursUnbounded());
+ e1 = (ElementBinding) t;
+ assertEquals(new QName("group2"), e1.getQName());
+ assertPropertiesSequenceBinding((ModelGroupBinding)e1.getType().getParticle().getTerm(), false);
}
public void testRootWithTwoParticleGroupsBinding() throws Exception
@@ -429,29 +518,51 @@
ElementBinding e = schema.getElement(new QName("main-root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
+
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ Collection<ParticleBinding> particles = ((ModelGroupBinding)t).getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- ParticleBinding p = i.next();
- t = p.getTerm();
+
+ ParticleBinding group1Particle;
+ ParticleBinding group2Particle;
+ if(t instanceof SequenceBinding)
+ {
+ group1Particle = i.next();
+ group2Particle = i.next();
+ }
+ else
+ {
+ ParticleBinding p = i.next();
+ if(((ElementBinding)p.getTerm()).getQName().equals(new QName("group1")))
+ {
+ group1Particle = p;
+ group2Particle = i.next();
+ }
+ else
+ {
+ group2Particle = p;
+ group1Particle = i.next();
+ }
+ }
+
+ t = group1Particle.getTerm();
assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
+ assertEquals(0, group1Particle.getMinOccurs());
+ assertEquals(1, group1Particle.getMaxOccurs());
+ assertFalse(group1Particle.getMaxOccursUnbounded());
e = (ElementBinding) t;
assertEquals(new QName("group1"), e.getQName());
- assertParticleChoiceBinding((SequenceBinding) e.getType().getParticle().getTerm());
+ assertParticleChoiceBinding((ModelGroupBinding) e.getType().getParticle().getTerm());
- p = i.next();
- t = p.getTerm();
+ t = group2Particle.getTerm();
assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
+ assertEquals(0, group2Particle.getMinOccurs());
+ assertEquals(1, group2Particle.getMaxOccurs());
+ assertFalse(group2Particle.getMaxOccursUnbounded());
e = (ElementBinding) t;
assertEquals(new QName("group2"), e.getQName());
- assertParticleChoiceBinding((SequenceBinding) e.getType().getParticle().getTerm());
+ assertParticleChoiceBinding((ModelGroupBinding) e.getType().getParticle().getTerm());
}
private void assertPropertiesSequenceBinding(Class<?> root, boolean inCollection)
@@ -460,34 +571,20 @@
ElementBinding e = schema.getElement(new QName("root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
assertPropertiesSequenceBinding(s, inCollection);
}
- private void assertPropertiesSequenceBinding(SequenceBinding s, boolean inCollection)
+ private void assertPropertiesSequenceBinding(ModelGroupBinding s, boolean inCollection)
{
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(1, particles.size());
ParticleBinding p = particles.iterator().next();
- TermBinding t = p.getTerm();
- assertTrue(t instanceof SequenceBinding);
- //assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertEquals(inCollection, p.getMaxOccursUnbounded());
- s = (SequenceBinding) t;
- particles = s.getParticles();
- assertEquals(3, particles.size());
- Iterator<ParticleBinding> i = particles.iterator();
- t = i.next().getTerm();
- assertTrue(t.isElement());
- assertEquals(new QName("c"), ((ElementBinding)t).getQName());
- t = i.next().getTerm();
- assertTrue(t.isElement());
- assertEquals(new QName("b"), ((ElementBinding)t).getQName());
- t = i.next().getTerm();
- assertTrue(t.isElement());
- assertEquals(new QName("a"), ((ElementBinding)t).getQName());
+ if(p.getTerm() instanceof SequenceBinding)
+ assertABCGroupParticle(p, true, inCollection);
+ else
+ assertABCGroupParticle(p, false, inCollection);
}
private void assertPropertiesChoiceBinding(Class<?> root, boolean inCollection)
@@ -496,8 +593,8 @@
ElementBinding e = schema.getElement(new QName("root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(1, particles.size());
ParticleBinding p = particles.iterator().next();
@@ -529,39 +626,78 @@
ElementBinding e = schema.getElement(new QName("root"));
assertNotNull(e);
TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- SequenceBinding s = (SequenceBinding) t;
+ assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+ ModelGroupBinding s = (ModelGroupBinding) t;
+
Collection<ParticleBinding> particles = s.getParticles();
assertEquals(2, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- ParticleBinding p = i.next();
- t = p.getTerm();
- assertTrue(t instanceof AllBinding);
- //assertEquals(0, p.getMinOccurs());
+
+ ParticleBinding groupParticle = null;
+ ParticleBinding elementParticle = null;
+ if(s instanceof SequenceBinding)
+ {
+ groupParticle = i.next();
+ elementParticle = i.next();
+ }
+ else
+ {
+ groupParticle = i.next();
+ if(groupParticle.getTerm().isElement())
+ {
+ elementParticle = groupParticle;
+ groupParticle = i.next();
+ }
+ else
+ elementParticle = i.next();
+ }
+
+ assertTrue(groupParticle.getTerm() instanceof AllBinding);
+ assertABCGroupParticle(groupParticle, false, inCollection);
+
+ t = elementParticle.getTerm();
+ assertTrue(t.isElement());
+ assertEquals(0, elementParticle.getMinOccurs());
+ assertEquals(1, elementParticle.getMaxOccurs());
+ assertFalse(elementParticle.getMaxOccursUnbounded());
+ assertEquals(new QName("prop"), ((ElementBinding)t).getQName());
+ }
+
+ private void assertABCGroupParticle(ParticleBinding p, boolean ordered, boolean inCollection)
+ {
+ Collection<ParticleBinding> particles;
assertEquals(1, p.getMaxOccurs());
assertEquals(inCollection, p.getMaxOccursUnbounded());
- AllBinding a = (AllBinding) t;
- particles = a.getParticles();
+ ModelGroupBinding group = (ModelGroupBinding) p.getTerm();
+ particles = group.getParticles();
assertEquals(3, particles.size());
-
- Set<QName> set = new HashSet<QName>();
- set.add(new QName("c"));
- set.add(new QName("b"));
- set.add(new QName("a"));
- for(ParticleBinding cp : particles)
+ if (ordered)
{
- t = cp.getTerm();
+ Iterator<ParticleBinding> i = particles.iterator();
+ TermBinding t = i.next().getTerm();
assertTrue(t.isElement());
- assertTrue(set.contains(((ElementBinding) t).getQName()));
+ assertEquals(new QName("c"), ((ElementBinding) t).getQName());
+ t = i.next().getTerm();
+ assertTrue(t.isElement());
+ assertEquals(new QName("b"), ((ElementBinding) t).getQName());
+ t = i.next().getTerm();
+ assertTrue(t.isElement());
+ assertEquals(new QName("a"), ((ElementBinding) t).getQName());
}
-
- p = i.next();
- t = p.getTerm();
- assertTrue(t.isElement());
- assertEquals(0, p.getMinOccurs());
- assertEquals(1, p.getMaxOccurs());
- assertFalse(p.getMaxOccursUnbounded());
- assertEquals(new QName("prop"), ((ElementBinding)t).getQName());
+ else
+ {
+ Set<QName> set = new HashSet<QName>();
+ set.add(new QName("c"));
+ set.add(new QName("b"));
+ set.add(new QName("a"));
+
+ for (ParticleBinding cp : particles)
+ {
+ TermBinding t = cp.getTerm();
+ assertTrue(t.isElement());
+ assertTrue(set.contains(((ElementBinding) t).getQName()));
+ }
+ }
}
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -57,6 +57,21 @@
super(name);
}
+ private boolean defaultSequence;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+ JBossXBBuilder.setUseUnorderedSequence(false);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+ }
+
public void testModelGroupWithDefaults() throws Exception
{
ModelGroupBinding group = getTypeModelGroup(RootWithDefaults.class);
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -84,7 +84,6 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
assertTrue(term instanceof ArraySequenceBinding);
term = assertSingleSequence(term);
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -32,11 +32,13 @@
import org.jboss.test.xb.builder.AbstractBuilderTest;
import org.jboss.test.xb.builder.object.type.xmlanyelement.support.ElementBeforePrimitive;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.builder.JBossXBBuilder;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -88,27 +90,47 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
+ assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
- Collection<ParticleBinding> particles = ((SequenceBinding)term).getParticles();
+ Collection<ParticleBinding> particles = ((ModelGroupBinding)term).getParticles();
assertEquals(2, particles.size());
+ ParticleBinding domParticle;
+ ParticleBinding textParticle;
Iterator<ParticleBinding> i = particles.iterator();
- particle = i.next();
- term = particle.getTerm();
+ if(term instanceof SequenceBinding)
+ {
+ domParticle = i.next();
+ textParticle = i.next();
+ }
+ else
+ {
+ particle = i.next();
+ if (((ElementBinding) particle.getTerm()).getQName().equals(new QName("dom")))
+ {
+ domParticle = particle;
+ textParticle = i.next();
+ }
+ else
+ {
+ textParticle = particle;
+ domParticle = i.next();
+ }
+ }
+
+ term = domParticle.getTerm();
assertTrue(term.isElement());
- assertEquals(0, particle.getMinOccurs());
- assertEquals(1, particle.getMaxOccurs());
- assertFalse(particle.getMaxOccursUnbounded());
+ assertEquals(0, domParticle.getMinOccurs());
+ assertEquals(1, domParticle.getMaxOccurs());
+ assertFalse(domParticle.getMaxOccursUnbounded());
element = (ElementBinding) term;
assertEquals(new QName("dom"), element.getQName());
- particle = i.next();
- term = particle.getTerm();
+ term = textParticle.getTerm();
assertTrue(term.isElement());
- assertEquals(0, particle.getMinOccurs());
- assertEquals(1, particle.getMaxOccurs());
- assertFalse(particle.getMaxOccursUnbounded());
+ assertEquals(0, textParticle.getMinOccurs());
+ assertEquals(1, textParticle.getMaxOccurs());
+ assertFalse(textParticle.getMaxOccursUnbounded());
element = (ElementBinding) term;
assertEquals(new QName("text"), element.getQName());
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -32,12 +32,14 @@
import org.jboss.test.xb.builder.AbstractBuilderTest;
import org.jboss.test.xb.builder.object.type.xmlanyelement.support.ElementPropertiesAndWildcard;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
import org.jboss.xb.builder.JBossXBBuilder;
import org.jboss.xb.builder.runtime.DOMHandler;
@@ -109,41 +111,64 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
+ assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
- Collection<ParticleBinding> particles = ((SequenceBinding)term).getParticles();
+ Collection<ParticleBinding> particles = ((ModelGroupBinding)term).getParticles();
assertEquals(3, particles.size());
Iterator<ParticleBinding> i = particles.iterator();
- particle = i.next();
- term = particle.getTerm();
- assertTrue(particle.getTerm().isElement());
- assertEquals(0, particle.getMinOccurs());
- assertEquals(1, particle.getMaxOccurs());
- assertFalse(particle.getMaxOccursUnbounded());
- element = (ElementBinding) term;
+
+ ParticleBinding e1p = null;
+ ParticleBinding e2p = null;
+ ParticleBinding wp = null;
+ if(term instanceof SequenceBinding)
+ {
+ e1p = i.next();
+ e2p = i.next();
+ wp = i.next();
+ }
+ else
+ {
+ while(i.hasNext())
+ {
+ particle = i.next();
+ term = particle.getTerm();
+ if(term.isElement())
+ {
+ if("e1".equals(((ElementBinding)term).getQName().getLocalPart()))
+ e1p = particle;
+ else
+ e2p = particle;
+ }
+ else
+ wp = particle;
+ }
+ }
+
+ assertTrue(e1p.getTerm().isElement());
+ assertEquals(0, e1p.getMinOccurs());
+ assertEquals(1, e1p.getMaxOccurs());
+ assertFalse(e1p.getMaxOccursUnbounded());
+ element = (ElementBinding) e1p.getTerm();
assertEquals(new QName("e1"), element.getQName());
- particles = ((SequenceBinding)element.getType().getParticle().getTerm()).getParticles();
+ particles = ((ModelGroupBinding)element.getType().getParticle().getTerm()).getParticles();
assertEquals(1, particles.size());
particle = particles.iterator().next();
assertWildcardTerm(element.getType(), particle, (short) 2);
- particle = i.next();
- term = particle.getTerm();
- assertTrue(particle.getTerm().isElement());
- assertEquals(0, particle.getMinOccurs());
- assertEquals(1, particle.getMaxOccurs());
- assertFalse(particle.getMaxOccursUnbounded());
- element = (ElementBinding) term;
+ assertTrue(e2p.getTerm().isElement());
+ assertEquals(0, e2p.getMinOccurs());
+ assertEquals(1, e2p.getMaxOccurs());
+ assertFalse(e2p.getMaxOccursUnbounded());
+ element = (ElementBinding) e2p.getTerm();
assertEquals(new QName("e2"), element.getQName());
- particles = ((SequenceBinding)element.getType().getParticle().getTerm()).getParticles();
+ particles = ((ModelGroupBinding)element.getType().getParticle().getTerm()).getParticles();
assertEquals(1, particles.size());
particle = particles.iterator().next();
assertWildcardTerm(element.getType(), particle, (short) 2);
- particle = i.next();
- assertWildcardTerm(type, particle, (short) 3);
+ assertWildcardTerm(type, wp, (short) 3);
WildcardBinding wildcardBinding = type.getWildcard();
ParticleHandler particleHandler = wildcardBinding.getWildcardHandler();
assertNotNull(particleHandler);
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -81,7 +81,6 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
assertTrue(term instanceof WildcardBinding);
WildcardBinding wildcardBinding = type.getWildcard();
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -85,7 +85,6 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -87,7 +87,6 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
assertTrue(term.isElement());
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -80,7 +80,6 @@
assertNotNull(particle);
TermBinding term = particle.getTerm();
assertNotNull(term);
- assertTrue(term instanceof SequenceBinding);
term = assertSingleSequence(term);
assertTrue(term instanceof WildcardBinding);
WildcardBinding wildcardBinding = type.getWildcard();
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -29,6 +29,7 @@
import org.jboss.test.xml.elementorder.support.ElementOrderRoot;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.JBossXBRuntimeException;
+import org.jboss.xb.builder.JBossXBBuilder;
/**
* A ElementOrderUnitTestCase.
@@ -43,6 +44,21 @@
super(name);
}
+ private boolean defaultSequence;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+ JBossXBBuilder.setUseUnorderedSequence(false);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+ }
+
public void testValidOneTwoOrder() throws Exception
{
ElementOrderRoot o = (ElementOrderRoot) unmarshalObject(ElementOrderRoot.class);
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java 2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java 2009-03-04 15:59:18 UTC (rev 3007)
@@ -53,23 +53,32 @@
public void testBinding() throws Exception
{
- SchemaBinding schema = JBossXBBuilder.build(Root.class);
- ElementBinding e = schema.getElement(new QName("root"));
- assertNotNull(e);
- TermBinding t = e.getType().getParticle().getTerm();
- assertTrue(t instanceof SequenceBinding);
- Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
- assertEquals(3, particles.size());
- Iterator<ParticleBinding> i = particles.iterator();
-
- t = i.next().getTerm();
- assertTrue(t instanceof SequenceBinding);
-
- t = i.next().getTerm();
- assertTrue(t instanceof SequenceBinding);
+ boolean defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+ JBossXBBuilder.setUseUnorderedSequence(false);
+ try
+ {
+ SchemaBinding schema = JBossXBBuilder.build(Root.class);
+ ElementBinding e = schema.getElement(new QName("root"));
+ assertNotNull(e);
+ TermBinding t = e.getType().getParticle().getTerm();
+ assertTrue(t instanceof SequenceBinding);
+ Collection<ParticleBinding> particles = ((SequenceBinding) t).getParticles();
+ assertEquals(3, particles.size());
+ Iterator<ParticleBinding> i = particles.iterator();
- t = i.next().getTerm();
- assertTrue(t instanceof UnorderedSequenceBinding);
+ t = i.next().getTerm();
+ assertTrue(t instanceof SequenceBinding);
+
+ t = i.next().getTerm();
+ assertTrue(t instanceof SequenceBinding);
+
+ t = i.next().getTerm();
+ assertTrue(t instanceof UnorderedSequenceBinding);
+ }
+ finally
+ {
+ JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+ }
}
public static class BaseGroup
More information about the jboss-svn-commits
mailing list