[424276] Content-assist in XSD for a simpleType with user defined restriction does not work
diff --git a/tests/org.eclipse.wst.xsd.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.xsd.core.tests/META-INF/MANIFEST.MF index 2a8c10d..7c542d7 100644 --- a/tests/org.eclipse.wst.xsd.core.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.wst.xsd.core.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-Localization: plugin Bundle-Name: %Bundle-Name.0 Bundle-SymbolicName: org.eclipse.wst.xsd.core.tests -Bundle-Version: 1.0.500.qualifier +Bundle-Version: 1.0.600.qualifier Bundle-ClassPath: xsdcoretests.jar Bundle-Activator: org.eclipse.wst.xsd.core.tests.internal.XSDCoreTestsPlugin Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
diff --git a/tests/org.eclipse.wst.xsd.core.tests/pom.xml b/tests/org.eclipse.wst.xsd.core.tests/pom.xml index 989ad8e..3c6f2f7 100644 --- a/tests/org.eclipse.wst.xsd.core.tests/pom.xml +++ b/tests/org.eclipse.wst.xsd.core.tests/pom.xml
@@ -22,6 +22,6 @@ <groupId>org.eclipse.webtools.sourceediting</groupId> <artifactId>org.eclipse.wst.xsd.core.tests</artifactId> - <version>1.0.500-SNAPSHOT</version> + <version>1.0.600-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/tests/org.eclipse.wst.xsd.core.tests/src/org/eclipse/wst/xsd/core/tests/internal/BugFixesTest.java b/tests/org.eclipse.wst.xsd.core.tests/src/org/eclipse/wst/xsd/core/tests/internal/BugFixesTest.java index 2c38003..6272b02 100644 --- a/tests/org.eclipse.wst.xsd.core.tests/src/org/eclipse/wst/xsd/core/tests/internal/BugFixesTest.java +++ b/tests/org.eclipse.wst.xsd.core.tests/src/org/eclipse/wst/xsd/core/tests/internal/BugFixesTest.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2012 IBM Corporation and others. + * Copyright (c) 2008, 2014 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -34,6 +34,7 @@ import org.eclipse.wst.xsd.contentmodel.internal.XSDImpl.XSDModelGroupAdapter; import org.eclipse.xsd.XSDComplexTypeDefinition; import org.eclipse.xsd.XSDSchema; +import org.eclipse.xsd.XSDSimpleTypeDefinition; import org.eclipse.xsd.XSDTypeDefinition; import org.osgi.framework.Bundle; @@ -458,5 +459,58 @@ String impliedValue = dataType.generateInstanceValue(); assertEquals("MA==", impliedValue); //$NON-NLS-1$ - } + } + + public void testEnumerationsInSimpleTypeHierarchy() + { + // See bug 424276 + + Bundle bundle = Platform.getBundle(XSDCoreTestsPlugin.PLUGIN_ID); + URL url = bundle.getEntry("/testresources/samples/bugzilla424276.xsd"); //$NON-NLS-1$ + + CMDocument cmDocument = XSDImpl.buildCMDocument(url.toExternalForm()); + assertNotNull(cmDocument); + XSDSchema xsdSchema = XSDImpl.buildXSDModel(url.toExternalForm()); + assertNotNull("failed to build model for " + url.toExternalForm()); //$NON-NLS-1$ + + assertTrue("Number of types in the test schema is 8", xsdSchema.getTypeDefinitions().size() == 8); //$NON-NLS-1$ + for (Iterator<XSDTypeDefinition> types = xsdSchema.getTypeDefinitions().iterator(); types.hasNext();) + { + XSDTypeDefinition type = types.next(); + if (type instanceof XSDSimpleTypeDefinition) + { + XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)type; + System.out.println(simpleType.getName()); + if ("A".equals(simpleType.getName())) + { + String[] enumeratedValuesForType = XSDImpl.getEnumeratedValuesForType(simpleType); + assertEquals(1, enumeratedValuesForType.length); + assertEquals(enumeratedValuesForType[0], "01"); + } + if ("B0".equals(simpleType.getName())) + { + String[] enumeratedValuesForType = XSDImpl.getEnumeratedValuesForType(simpleType); + assertEquals(1, enumeratedValuesForType.length); + assertEquals(enumeratedValuesForType[0], "01"); + } + if ("C0".equals(simpleType.getName())) + { + String[] enumeratedValuesForType = XSDImpl.getEnumeratedValuesForType(simpleType); + assertEquals(2, enumeratedValuesForType.length); + assertEquals(enumeratedValuesForType[0], "01"); + assertEquals(enumeratedValuesForType[1], "02"); + } + if ("D0".equals(simpleType.getName())) + { + String[] enumeratedValuesForType = XSDImpl.getEnumeratedValuesForType(simpleType); + assertEquals(4, enumeratedValuesForType.length); + assertEquals(enumeratedValuesForType[0], "01"); + assertEquals(enumeratedValuesForType[1], "02"); + assertEquals(enumeratedValuesForType[2], "03"); + assertEquals(enumeratedValuesForType[3], "04"); + } + } + } + } + } \ No newline at end of file