blob: 8183157581a7094be3ba6194a9676b51e64e44b1 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.sdo.helper.xsdhelper.define.elements;
import commonj.sdo.Property;
import commonj.sdo.Type;
import java.util.List;
import junit.framework.TestCase;
import junit.textui.TestRunner;
import org.eclipse.persistence.sdo.SDOConstants;
import org.eclipse.persistence.sdo.SDOType;
import org.eclipse.persistence.testing.sdo.helper.xsdhelper.XSDHelperTestCases;
import org.eclipse.persistence.exceptions.SDOException;
public class XSDHelperElementTestCases extends XSDHelperTestCases {
public XSDHelperElementTestCases(String name) {
super(name);
}
public static void main(String[] args) {
String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.helper.xsdhelper.define.elements.XSDHelperElementTestCases" };
TestRunner.main(arguments);
}
public void testElementWithName() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithName.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(aType.getProperties().size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "elementTest");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
assertTrue(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDO_Name() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDO_Name.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(2, types.size());
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "SDO_NAME");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "elementTest");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
assertTrue(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDO_AliasName() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDO_AlasName.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "elementTest");
// check alias name
assertEquals(1, p.getAliasNames().size());
assertEquals(p.getAliasNames().get(0), "ALIAS_NAME");
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
assertTrue(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithNameCollisions() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithNameCollisions.xsd");
List types = xsdHelper.define(xsdSchema);
assertEquals(4, types.size());
for (int i = 0; i < types.size(); i++) {
SDOType nextType = (SDOType)types.get(i);
Property prop = null;
if (nextType.getName().equals("myTestType")) {
prop = nextType.getProperty("myElement");
}
else if (nextType.getName().equals("myTestType2")) {
prop = nextType.getProperty("myElement2");
}
else if (nextType.getName().equals("myTestType3")) {
prop = nextType.getProperty("myElement3");
}
else if (nextType.getName().equals("myTestType4")) {
prop = nextType.getProperty("myElement4");
}
assertNotNull(prop);
assertEquals(1, nextType.getDeclaredProperties().size());
assertTrue(prop.isMany());
assertFalse(prop.isContainment());
assertEquals(SDOConstants.SDO_OBJECT, prop.getType());
assertTrue((Boolean)prop.get(SDOConstants.XMLELEMENT_PROPERTY));
}
}
public void testElementWithReference() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithReference.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has one type
assertEquals(2, types.size());
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(aType.getProperties().size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myElement");
// check if Property's Type is as schema
//TODO: myElement or my-int
assertEquals(p.getType().getName(), "myElement");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! facing same problem as attribute's test !!
assertEquals(p.getDefault(), Integer.valueOf(3));
// check opposite Property
assertNull(p.getOpposite());
assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithReferenceMaxOccurs() {
//Test for bug 5672183
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithReferenceMaxOccurs.xsd");
List types = xsdHelper.define(xsdSchema);
//Type myTestType = TypeHelper.INSTANCE.getType("http://www.example.org", "myTestType");
Type myTestType = typeHelper.getType("http://www.example.org", "myTestType");
Property p = (Property)myTestType.getDeclaredProperties().get(0);
// check if it many
assertTrue(p.isMany());
}
public void testElementWithMaxOccurance() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithMaxOccurance.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(1, aType.getProperties().size());
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "elementTest");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertTrue(p.isMany());
}
public void testElementWithNillable() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithNillable.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(1, aType.getProperties().size());
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "elementTest");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSubstitution() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSubstitution.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has one type
assertEquals(types.size(), 3);
//Type aType = (Type)types.get(0);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
if (((Type)types.get(i)).getName().equals("mySubstitute")) {
aType = (Type)types.get(i);
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "otherTest");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "myTestType");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "mySubstitute");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithName_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithName_Simple.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(aType.getProperties().size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "my-int");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: should this be true or false
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithDefault_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithDefault_Simple.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(1, aType.getProperties().size());
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "my-int");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertEquals(p.getDefault(), Integer.valueOf(3));
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithFixed_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithFixed_Simple.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
assertEquals(1, aType.getProperties().size());
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "my-int");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertEquals(p.getDefault(), Integer.valueOf(3));
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDOString_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDOString_Simple.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
//this.assertEquals(p.getType().getName(), "string");
assertEquals(SDOConstants.SDO_STRING, p.getType());
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
//this.assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDOPropertyType_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDOPropertyType_Simple.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(3, types.size());
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "P_TYPE");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
//TODO: what should containment be
assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDOOppositePro_Simple() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDOOppositePro_Simple.xsd");
List types = null;
// JIRA-235: simple single type references: Spec sect 9.2 (1) oppositeType.dataType must be false
try {
types = xsdHelper.define(xsdSchema);
fail("An SDOException " + SDOException.CANNOT_SET_PROPERTY_TYPE_ANNOTATION_IF_TARGET_DATATYPE_TRUE //
+ " should have occurred but did not.");
} catch (SDOException e) {
assertEquals(SDOException.CANNOT_SET_PROPERTY_TYPE_ANNOTATION_IF_TARGET_DATATYPE_TRUE ,e.getErrorCode());
}
/*
// check list has 2 types
this.assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
this.assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
this.assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
this.assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
this.assertEquals(p.getType().getName(), "my-IDREF");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
this.assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
this.assertNull((Integer)p.getDefault());
// check opposite Property
this.assertNotNull(p.getOpposite());
this.assertEquals("PROPERTY", p.getOpposite().getName());
//TODO: what should containment be
this.assertFalse(p.isContainment());
// check if it many
this.assertFalse(p.isMany());
*/
}
public void testElementWithSDODataType() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDODataType.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has 2 types
assertEquals(types.size(), 2);
Type aType = null;
for (int i = 0; i < types.size(); i++) {
Type nextType = (Type)types.get(i);
if (nextType.getName().equals("myTestType")) {
aType = nextType;
}
}
assertNotNull(aType);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "String");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
}
public void testElementWithSDOChangeSummary() {
String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/helper/xsdhelper/define/elements/ElementWithSDOChangeSummary.xsd");
List types = xsdHelper.define(xsdSchema);
// check list has one type
assertEquals(types.size(), 1);
Type aType = (Type)types.get(0);
List properties = aType.getDeclaredProperties();
// check the type has one Property
assertEquals(properties.size(), 1);
Property p = (Property)properties.get(0);
// check if Property name is as schema
assertEquals(p.getName(), "myTest1");
// check if Property's Type is as schema
assertEquals(p.getType().getName(), "ChangeSummaryType");
// check alias name
//this.assertNull(p.getAliasNames());
// check containing type
assertEquals(p.getContainingType().getName(), "myTestType");
// check default value !! may have the problem as in attriutes' test !!
assertNull(p.getDefault());
// check opposite Property
assertNull(p.getOpposite());
assertFalse(p.isContainment());
// check if it many
assertFalse(p.isMany());
// TODO: sdo spec p30 requires r/o state but 200606_cs changes set it to true for now
//assertFalse(p.isReadOnly());
assertTrue(p.isReadOnly());
}
}