diff options
Diffstat (limited to 'java/sdo-cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObject/DataObjectTest.java')
-rw-r--r-- | java/sdo-cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObject/DataObjectTest.java | 395 |
1 files changed, 0 insertions, 395 deletions
diff --git a/java/sdo-cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObject/DataObjectTest.java b/java/sdo-cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObject/DataObjectTest.java deleted file mode 100644 index ce40f7b8d3..0000000000 --- a/java/sdo-cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObject/DataObjectTest.java +++ /dev/null @@ -1,395 +0,0 @@ -/* - * 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.DataObject; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -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.util.CTSUtil; - -import commonj.sdo.DataObject; -import commonj.sdo.Property; -import commonj.sdo.Type; -import commonj.sdo.helper.HelperContext; -import commonj.sdo.helper.XMLDocument; - -import java.util.List; -import java.util.ArrayList; - -/** - * Set of tests for DataObject APIs. - * Currently limited to a fairly narrow set of tests on the set(Property, value), isSet(), and unSet() - * methods. - * <p/> - * TODO Need to extend the test set or migrate tests from other existing tests as yet unidentified. - */ -public class DataObjectTest extends CTSTestCase { - - private boolean debug = false; - private static int uniqueNumber = 1; - - @Before - public void setUp() throws Exception { - super.setUp(); - } - - - - - /** - * This test checks that getInstanceProperties returns all properties - * defined by the DataObject's type, regardless of whether they are set or - * not. It also checks that open content properties only appear in - * getInstanceProperties if they are set. Related sections in the - * specification are / 3.1.9 / 3.1.11 Related JIRA SDO-179 - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=14">2.1 spec section 3.1.1</a> - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=18">2.1 spec section 3.1.9</a> - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=20">2.1 spec section 3.1.11</a> - * @see <a href="http://www.xcalia.com/support/browse/SDO-179">SDO Spec JIRA 179</a> - * @throws Exception - */ - @Test - @Ignore("On demand open content property is not yet implemented in Tuscany.") - public void testGetInstancePropertiesSize() throws Exception { - - // define a type with two properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - CTSUtil.createPropertyDef(typeDef, "p1", "commonj.sdo#String", false, false, helperContext); - CTSUtil.createPropertyDef(typeDef, "p2", "commonj.sdo#String", false, false, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject dobj = helperContext.getDataFactory().create("", typeName); - - // getInstanceProperties() should return p1, p2 even though they are not - // set - // System.out.println(dobj.getInstanceProperties()); - assertEquals(2, dobj.getInstanceProperties().size()); - - dobj.set("p1", "foo"); - - // getInstanceProperties() should still return p1, p2 - assertEquals(2, dobj.getInstanceProperties().size()); - - dobj.unset("p1"); - - // getInstanceProperties() should still return p1, p2 - assertEquals(2, dobj.getInstanceProperties().size()); - - // set an on-demand open content property - dobj.set("p3", "foo"); - - // getInstanceProperties() should now return p1, p2, p3 - assertEquals(3, dobj.getInstanceProperties().size()); - - // unset the on-demand property - dobj.unset("p3"); - - // the spec says that open content properties only appear in - // getInstancePropeties if - // they are set so we expect the list to be smaller now - assertEquals(2, dobj.getInstanceProperties().size()); - } - - /** - * Tests an isMany=false Boolean type property in an open type for being set to false/unset. - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=16">2.1 spec section 3.1.5</a> - * @see commonj.sdo.DataObject#isSet() - * @see commonj.sdo.DataObject#unset() - * @see commonj.sdo.DataObject#set(Property, Boolean) - * @throws Exception - */ - @Test - public void testIsSet_Boolean_false() throws Exception { - - // define a type with two properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - CTSUtil.createPropertyDef(typeDef, "b1", "commonj.sdo#Boolean", false, false, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - Property p = testDO.getInstanceProperty("b1"); - testDO.unset(p); - assertFalse("Property was set", testDO.isSet(p)); - testDO.set(p, false); - assertTrue("Property was not set ", testDO.isSet(p)); - } - - /** - * Tests an isMany=false Boolean type property in an open type for being set to true/unset. - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=16">2.1 spec section 3.1.5</a> - * @see commonj.sdo.DataObject#getInstanceProperty(String) - * @see commonj.sdo.DataObject#isSet() - * @see commonj.sdo.DataObject#unset() - * @see commonj.sdo.DataObject#set(Property, Boolean) - * @throws Exception - */ - @Test - public void testIsSet_Boolean_true() throws Exception { - - // define a type with two properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - CTSUtil.createPropertyDef(typeDef, "b1", "commonj.sdo#Boolean", false, false, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - Property p = testDO.getInstanceProperty("b1"); - testDO.unset(p); - assertFalse("Property was set", testDO.isSet(p)); - testDO.set(p, true); - assertTrue("Property was not set " + testDO.get(p), testDO - .isSet(p)); - } - - /** - * Tests isSet() of Integer property where isMany = false in an open type. - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=16">2.1 spec section 3.1.5</a> - * @see commonj.sdo.DataObject#isSet() - * @see commonj.sdo.DataObject#unset() - * @see commonj.sdo.DataObject#set(Property, Integer) - * @throws Exception - */ - @Test - public void testIsSet_Integer_0() throws Exception { - - // define a type with two properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - CTSUtil.createPropertyDef(typeDef, "i1", "commonj.sdo#Integer", false, false, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - Property p = testDO.getInstanceProperty("i1"); - testDO.unset(p); - assertFalse("Property was set", testDO.isSet(p)); - testDO.set(p, java.math.BigInteger.valueOf(0)); - assertTrue("Property was not set" + testDO.get(p), testDO.isSet(p)); - } - - /** - * Ensures correct behaviour (returns null) on attempting to get a non existent property in an open type.<br/> - * Tests isSet() after unset() and set() on isMany=false property - * @see commonj.sdo.DataObject#getInstanceProperty(String) - * @see commonj.sdo.DataObject#isSet() - * @see commonj.sdo.DataObject#unset() - * @see commonj.sdo.DataObject#set(Property, Integer) - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=16">2.1 spec section 3.1.5</a> - * @throws Exception - */ - @Test - public void testIsSet_Integer_1() throws Exception { - - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - CTSUtil.createPropertyDef(typeDef, "i1", "commonj.sdo#Integer", false, false, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - try { - Property p = testDO.getInstanceProperty("default"); - assertTrue("non null return for non-existent property in an open type", p==null); - } catch (Exception e) { - assertTrue("getInstanceProperty throws exception for non-existent property "+e, false); - } - - Property p = testDO.getInstanceProperty("i1"); - testDO.unset(p); - assertFalse("Property was set ", testDO.isSet(p)); - - testDO.set(p, java.math.BigInteger.valueOf(1)); - assertTrue("Property was not set ", testDO.isSet(p)); - } - - /** - * Tests isSet() after unset() and set() on isMany=false property of type Int in an open type - * @see commonj.sdo.DataObject#getInstanceProperty(String) - * @see commonj.sdo.DataObject#isSet() - * @see commonj.sdo.DataObject#unset() - * @see commonj.sdo.DataObject#set(Property, Integer) - * @see <a href="http://osoa.org/download/attachments/36/Java-SDO-Spec-v2.1.0-FINAL.pdf?version=1#page=16">2.1 spec section 3.1.5</a> - * @throws Exception - */ - @Test - public void testIsSet_int_1() throws Exception { - - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - Type intType = helperContext.getTypeHelper().getType("commonj.sdo", "Int"); - - CTSUtil.createPropertyDef(typeDef, "i1", intType, false, false); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - Property p = testDO.getInstanceProperty("i1"); - testDO.unset(p); - assertFalse("Property was not unset", testDO.isSet(p)); - - testDO.set(p, 1); - assertTrue("Property was not set " , testDO.isSet(p)); - } - - /** - * Tests an open type - * @throws Exception - */ - @Test - public void testIsSet_int_0() throws Exception { - try { - - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - Type intType = helperContext.getTypeHelper().getType("commonj.sdo", "Int"); - CTSUtil.createPropertyDef(typeDef, "i1", intType, false, false); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - Property p = testDO.getInstanceProperty("i1"); - testDO.unset(p); - assertFalse("Property was set", testDO.isSet(p)); - - testDO.set(p, 0); - if (debug) { - helperContext.getXMLHelper().save(testDO, "http://www.example.com/api_test", "apiTestElem", System.out); - } - assertTrue("Property was not set", testDO.isSet(p)); - - } catch (Exception e) { - assertFalse("No exception expected: received " + e.toString(), true); - } - } - - @Test - public void testOpenTypeBadPropertyReturnsDefault() { - // define an open type with no properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - // get() should not throw an exception but return an appropriate default value - assertEquals( null, testDO.get( "foo" ) ); - assertEquals( null, testDO.getDataObject( "foo" ) ); - assertEquals( null, testDO.getList( "foo" ) ); - assertEquals( null, testDO.getString( "foo" ) ); - assertEquals( null, testDO.getBigDecimal( "foo" ) ); - assertEquals( null, testDO.getBigInteger( "foo" ) ); - assertEquals( null, testDO.getDate( "foo" ) ); - assertEquals( null, testDO.getBytes( "foo" ) ); - assertEquals( (byte) 0, testDO.getByte( "foo" ) ); - assertEquals( (short) 0, testDO.getShort( "foo" ) ); - assertEquals( (int) 0, testDO.getInt( "foo" ) ); - assertEquals( (long) 0, testDO.getLong( "foo" ) ); - assertEquals( (double) 0, testDO.getDouble( "foo" ) ); - assertEquals( (float) 0, testDO.getFloat( "foo" ) ); - } - - /** - * Test that getList() returns null for an unset open content property. - * - */ - @Test - public void testGetList() { - - // define an open type with no properties - HelperContext helperContext = getScope(); - String typeName = getTypeName(); - DataObject typeDef = CTSUtil.createTypeDef("", typeName, true, helperContext); - helperContext.getTypeHelper().define(typeDef); - - // create a DataObject that uses this type - DataObject testDO = helperContext.getDataFactory().create("", typeName); - - // test that getList() returns null for an unst open content property - assertNull( testDO.getList("foo") ); - testDO.set("foo", new ArrayList()); - assertNotNull( testDO.getList("foo") ); - testDO.unset("foo"); - assertNull( testDO.getList("foo") ); - } - - /** - * Test that it is possible to add a null value to a List retrieved by calling DataObject.getList() - * - */ - @Test - public void testAddNullToList() { - HelperContext helperContext = getScope(); - XMLDocument doc = helperContext.getXMLHelper().load("<catalog2><product2/><product2/></catalog2>"); - List listTest = doc.getRootObject().getList("product2"); - assertNotNull(listTest); - assertEquals(2, listTest.size()); - listTest.add( null ); - assertEquals(3, listTest.size()); - String xml = helperContext.getXMLHelper().save( doc.getRootObject(), doc.getRootElementURI(), doc.getRootElementName() ); - assertTrue( xml.indexOf("xsi:nil=\"true\"") > 0 ); - - } - - /** - * Creates a unique type name for each test so that the types won't clash if an implementation - * provides its default HelperContext when running the tests. - * - * @return - */ - private String getTypeName() { - return "DataObjectTestType" + (++uniqueNumber); - } - - @Override - @After - public void tearDown() throws Exception { - super.tearDown(); - } -} |