summaryrefslogtreecommitdiffstats
path: root/sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java')
-rw-r--r--sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java263
1 files changed, 263 insertions, 0 deletions
diff --git a/sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java b/sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java
new file mode 100644
index 0000000000..e70226c10a
--- /dev/null
+++ b/sdo-java/trunk-cts/sdo2.1/src/main/java/test/sdo21/tests/api/PropertyTest.java
@@ -0,0 +1,263 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * $Rev$ $Date$
+ */
+package test.sdo21.tests.api;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import test.sdo21.framework.CTSTestCase;
+import test.sdo21.tests.TestData.StandardDynamicFactory;
+import test.sdo21.tests.TestData.StandardFactory;
+import test.sdo21.tests.TestData.TestDataFactory;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+
+
+public class PropertyTest extends CTSTestCase {
+ private DataObject testDO;
+ TestDataFactory factory;
+
+ public PropertyTest() {
+ // Tests on the Property interface should be independent of the metadata creation mechanism
+ // so just pick one Standard Factory
+ factory = new StandardDynamicFactory();
+ }
+
+ @Before
+ public void setUp () throws Exception {
+ super.setUp();
+ factory.defineMetaData(getScope());
+ testDO = factory.createTestData(getScope(), StandardFactory.API_TYPE);
+ }
+
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /**
+ * Verify Property.getDefault() for a newly created DataObject.
+ * @throws Exception
+ */
+ @Test
+ public void testGetDefaultNewDO() throws Exception {
+ verifyGetDefault(factory.createTestData(getScope(), StandardFactory.API_TYPE));
+ }
+
+ /**
+ * Verify Property.getDefault() for a cleared DataObject.
+ */
+ @Test
+ public void testGetDefaultClearedDO() {
+ // Set the values for each Property using populateFields, then unset
+ // them using unsetFields.
+ try {
+ ((StandardFactory)factory).populateFields(testDO, getScope());
+ } catch (Exception e) {
+ fail("could not populate DataObject fields");
+ }
+ unsetFields(testDO);
+ verifyGetDefault(testDO);
+ }
+
+ /**
+ * Verify Property.getName()
+ */
+ @Test
+ public void testPropertyGetName() {
+ Property property = testDO.getInstanceProperty("containMany");
+ assertEquals("Property.getName() returned an unexpected value.", property.getName(), "containMany");
+ }
+
+ /**
+ * Verify Property.getType()
+ */
+ @Test
+ public void testPropertyGetType() {
+ Property property = testDO.getInstanceProperty("containMany");
+
+ assertEquals("Property.getType() returned an unexpected value.", property.getType(), testDO.getType());
+ }
+
+ /**
+ * Verify Property.isMany()==true
+ */
+ @Test
+ public void testPropertyIsManyTrue() {
+ Property property = testDO.getInstanceProperty("containMany");
+ assertTrue("Property.isMany() returned an unexpected value.", property.isMany());
+ }
+
+ /**
+ * Verify Property.isMany()==false
+ */
+ @Test
+ public void testPropertyIsManyFalse() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertFalse("Property.isMany() returned an unexpected value.", property.isMany());
+ }
+
+ /**
+ * Verify Property.isContainment()==true
+ */
+ @Test
+ public void testPropertyIsContainmentTrue() {
+ Property property = testDO.getInstanceProperty("containMany");
+ assertTrue("Property.isContainment() returned an unexpected value.", property.isContainment());
+ }
+
+ /**
+ * Verify Property.isContainment()==false
+ */
+ @Test
+ public void testPropertyIsContainmentFalse() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertFalse("Property.isContainment() returned true when expecting false.", property.isContainment());
+ }
+
+ /**
+ * Verify Property.isReadOnly()==true
+ */
+ @Test
+ public void testPropertyIsReadOnlyTrue() {
+ Property property = testDO.getInstanceProperty("readOnlyVal");
+ assertTrue("Property.isReadOnly() returned false when expecting true.", property.isReadOnly());
+ }
+
+ /**
+ * Verify Property.isReadOnly()==false
+ */
+ @Test
+ public void testPropertyIsReadOnlyFalse() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertFalse("Property.isReadOnly() returned true when expecting false.", property.isReadOnly());
+ }
+
+ /**
+ * Verify Property.getContainingType
+ */
+ @Test
+ public void testPropertyGetContainingType() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertEquals("Property.getContainingType() returned an unexpected value.", property.getContainingType(), testDO
+ .getType());
+ }
+
+ /**
+ * Verify Property.getAliasNames() == empty List
+ */
+ @Test
+ public void testPropertyGetAliasNamesEmpty() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertEquals("Property.getAliasNames() returned a List of unexpected size.", 0, property.getAliasNames().size());
+ }
+
+ /**
+ * Verify Property.getAliasNames() == populated List
+ */
+ @Ignore("Awaiting implementation of SDOUtil.addAliasName")
+ @Test
+ public void testPropertyGetAliasNames() {
+ List aliasNames = testDO.getInstanceProperty("decimalVal2").getAliasNames();
+ assertEquals("Property.getAliasNames() returned a List of unexpected size.", 1, aliasNames.size());
+
+ String alias = (String)aliasNames.get(0);
+ assertEquals("Property.getAliasNames() returned a List with unexpected contents.", "Dec2", alias);
+ }
+
+ /**
+ * Verify Property.getOpposite() == null
+ */
+ @Test
+ public void testPropertyGetOppositeNull() {
+ Property property = testDO.getInstanceProperty("booleanVal");
+ assertNull("Property.getOpposite() did not return null as expected.", property.getOpposite());
+ }
+
+ /**
+ * Verify Property.getOpposite() != null
+ */
+ @Test
+ @Ignore
+ public void testPropertyGetOpposite() {
+ // TODO write this test
+ }
+
+ /**
+ * verifyGetDefault is a private method that loops through each Property in
+ * the passed DataObject and verifies that the value is equal to the value
+ * returned by getDefault for each Property. The precondition is that unset
+ * has been called for any Property for which a value has been set.
+ *
+ * @param testedDO
+ */
+
+ private void verifyGetDefault(DataObject testedDO) {
+ List properties = testedDO.getInstanceProperties();
+ Property property;
+
+ for (int i = 0; i < properties.size(); i++) {
+ property = (Property)properties.get(i);
+ if (!(property.isReadOnly())) {
+ if (property.isMany()) {
+ assertNull("Property.getDefault() did not return null for many-valued Property " + property.getName()
+ + "'.", property.getDefault());
+ } else {
+ assertEquals("Property.getDefault() did not return the correct default value for Property '" + property
+ .getName()
+ + "'.", testedDO.get(property), property.getDefault());
+ }
+ }
+ }
+ }
+
+ /**
+ * unsetFields() is a private method that loops through the Properties in
+ * the passed DataObject and unsets each Property.
+ *
+ * @param unsetDO
+ */
+
+ private void unsetFields(DataObject unsetDO) {
+ List properties = unsetDO.getInstanceProperties();
+ Property currProp;
+
+ for (int i = 0; i < properties.size(); i++)
+ {
+ currProp = (Property) properties.get(i);
+ if (!(currProp.isReadOnly())) {
+ unsetDO.unset(i);
+ }
+ }
+ }
+}