You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ra...@apache.org on 2007/04/27 06:11:40 UTC
svn commit: r532957 [4/4] - in /xmlbeans/trunk:
src/typeimpl/org/apache/xmlbeans/impl/schema/ test/cases/xbean/misc/jira/
test/src/misc/detailed/
Added: xmlbeans/trunk/test/src/misc/detailed/LargeEnumTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/misc/detailed/LargeEnumTest.java?view=auto&rev=532957
==============================================================================
--- xmlbeans/trunk/test/src/misc/detailed/LargeEnumTest.java (added)
+++ xmlbeans/trunk/test/src/misc/detailed/LargeEnumTest.java Thu Apr 26 21:11:39 2007
@@ -0,0 +1,131 @@
+package misc.detailed;
+
+import org.apache.xmlbeans.*;
+
+import java.util.*;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import junit.framework.TestSuite;
+import junit.framework.TestCase;
+import junit.framework.Test;
+import junit.framework.Assert;
+import xmlbeans307.*;
+
+/**
+ * This test was put together for:
+ * http://issues.apache.org/jira/browse/XMLBEANS-307
+ * XMLBeans scomp throws error "code too large"
+ */
+public class LargeEnumTest extends TestCase {
+
+ public LargeEnumTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(LargeEnumTest.class);
+ }
+
+ /**
+ * These are tests for a enumeration type
+ *
+ * @throws Exception
+ */
+ public void testEnumCount_closeToMax() throws Exception {
+ SchemaType mType = MaxAllowedEnumType.type;
+ assertTrue("Enumeration SchemaType was null", mType.getEnumerationValues() != null);
+ assertTrue("EnumerationValue was not 3665 as expected was" + mType.getEnumerationValues().length,
+ mType.getEnumerationValues().length == 3665);
+
+ SchemaType mElem = MaxAllowedElementDocument.type;
+ assertTrue("Enumeration SchemaType was null", mElem.getEnumerationValues() == null);
+
+ // Test that the Java type associated to this is an enum type
+ assertNotNull("This type does not correspond to a Java enumeration", mType.getStringEnumEntries());
+ }
+
+
+ public void testEnumCount_greaterThanMax() throws Exception {
+ // TODO: verify if any xpath/xquery issues
+ SchemaType mType = MoreThanAllowedEnumType.type;
+
+ assertNotNull("Enumeration should be null as type should be base type " + mType.getEnumerationValues(),
+ mType.getEnumerationValues());
+ assertTrue("EnumerationValue was not 3678 as expected was " + mType.getEnumerationValues().length,
+ mType.getEnumerationValues().length == 3678);
+ System.out.println("GET BASE TYPE: " + mType.getBaseType());
+ System.out.println("GET BASE TYPE: " + mType.getPrimitiveType());
+ assertTrue("type should have been base type, was " + mType.getBaseType(),
+ mType.getBaseType().getBuiltinTypeCode() == XmlToken.type.getBuiltinTypeCode());
+
+ SchemaType mElem = GlobalMoreThanElementDocument.type;
+ assertTrue("Enumeration SchemaType was null", mElem.getBaseEnumType() == null);
+
+ // Test that the Java type associated to this is not an enum type
+ assertNull("This type corresponds to a Java enumeration, even though it has too many enumeration values",
+ mType.getStringEnumEntries());
+ }
+
+ public void testEnumCount_validate_invalid_enum() throws Exception {
+ MoreThanAllowedEnumType mType = MoreThanAllowedEnumType.Factory.newInstance();
+
+ //This value dos not exist in the enumeration set
+ mType.setStringValue("12345AAA");
+ ArrayList errors = new ArrayList();
+ XmlOptions options = (new XmlOptions()).setErrorListener(errors);
+ mType.validate(options);
+ XmlError[] xErr = new XmlError[errors.size()];
+ for (int i = 0; i < errors.size(); i++) {
+ System.out.println("ERROR: " + errors.get(i));
+ xErr[i] = (XmlError)errors.get(i);
+ }
+
+ Assert.assertTrue("NO Expected Errors after validating enumType after set", errors.size() ==1 );
+ Assert.assertTrue("Expected ERROR CODE was not as expected",
+ xErr[0].getErrorCode().compareTo("cvc-enumeration-valid") ==0 );
+ // string value '12345AAA' is not a valid enumeration value for MoreThanAllowedEnumType in
+ }
+
+
+ public void test_MoreEnum_Operations() throws Exception {
+ MoreThanAllowedEnumType mType = MoreThanAllowedEnumType.Factory.newInstance();
+
+ mType.setStringValue("AAA");
+ ArrayList errors = new ArrayList();
+ XmlOptions options = (new XmlOptions()).setErrorListener(errors);
+ mType.validate(options);
+
+ for (int i = 0; i < errors.size(); i++) {
+ System.out.println("ERROR: " + errors.get(i));
+ }
+ Assert.assertTrue("There were errors validating enumType after set", errors.size() == 0);
+
+ GlobalMoreThanElementDocument mDoc = GlobalMoreThanElementDocument.Factory.newInstance();
+ mDoc.setGlobalMoreThanElement("AAA");
+ errors = null;
+ errors = new ArrayList();
+ options = (new XmlOptions()).setErrorListener(errors);
+ mDoc.validate(options);
+
+ for (int i = 0; i < errors.size(); i++) {
+ System.out.println("ERROR: " + errors.get(i));
+ }
+
+ Assert.assertTrue("There were errors validating enumDoc after set", errors.size() == 0);
+
+ MoreThanAllowedComplexType mcType = MoreThanAllowedComplexType.Factory.newInstance();
+ mcType.setComplexTypeMoreThanEnum("AAA");
+ mcType.setSimpleString("This should work");
+ errors = null;
+ errors = new ArrayList();
+ mcType.validate(options);
+ for (int i = 0; i < errors.size(); i++) {
+ System.out.println("ERROR: " + errors.get(i));
+ }
+
+ Assert.assertTrue("There were errors validating complxType after set", errors.size() == 0);
+ }
+
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org