You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by gw...@apache.org on 2007/01/31 12:18:48 UTC

svn commit: r501803 [1/5] - in /incubator/tuscany/java/cts/sdo2.1/src/main: java/test/sdo21/ java/test/sdo21/framework/ java/test/sdo21/paramatizedTests/ java/test/sdo21/paramatizedTests/api/ java/test/sdo21/paramatizedTests/conversion/ java/test/sdo21...

Author: gwinn
Date: Wed Jan 31 03:18:45 2007
New Revision: 501803

URL: http://svn.apache.org/viewvc?view=rev&rev=501803
Log:
TUSCANY-1048

Added:
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/TypeHelperTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/TypeTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/XMLHelperTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/conversion/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/conversion/TypeConversionTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/conversion/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/general/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/general/ActiveUpdatingTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/general/ContainmentTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/general/DeleteTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/general/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/util/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/util/ParamatizedTestUtil.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/util/TypeCreateUtility.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/util/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/CTSGeneralSuite.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/api/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/conversion/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/conversion/DateConversionTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/conversion/TypeConversionTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/conversion/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/general/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/general/XSDSerializationTest.java   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/general/package.html   (with props)
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/package.html   (with props)
Removed:
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/DefaultTestHelper.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/ExpectedConditionError.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/ExpectedExceptionError.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/ReturnValueError.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/scenarios/
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/scenarios/DynamicTestCase.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/scenarios/DynamicWithStaticResourceTestCase.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/typeconv/
Modified:
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/CTSSuite.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/TestHelper.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/api/DataObjectTest.java
    incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/tests/scenarios/DataObjectListTest.java
    incubator/tuscany/java/cts/sdo2.1/src/main/resources/api_test.xsd

Modified: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/CTSSuite.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/CTSSuite.java?view=diff&rev=501803&r1=501802&r2=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/CTSSuite.java (original)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/CTSSuite.java Wed Jan 31 03:18:45 2007
@@ -1,5 +1,4 @@
-/**
- *
+/*
  *  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
@@ -16,75 +15,106 @@
  *  KIND, either express or implied.  See the License for the
  *  specific language governing permissions and limitations
  *  under the License.
+ *  
+ *  $Rev$  $Date$
  */
 package test.sdo21;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
 import test.sdo21.framework.TestHelper;
-import test.sdo21.tests.api.DataObjectTest;
-import test.sdo21.tests.typeconv.TypeConversionTest;
 
 /**
- * This is the main entry point into the CTS. This class can be run as a JUnit TestCase
- * or as a Java application using the command-line.
- *
- * The SDO implementation being tested must be on the classpath before running this.
+ * The main "root" CTS test suite which includes execution of the
+ * following sub-categorized CTS within Junit 4.1 environment:
+ * <ul>
+ *   <li>test.sdo21.paramatizedTests.CTSParamatizedSuite</li>
+ *   <li>test.sdo21.tests.CTSGeneralSuite</li>
+ * </ul>
  */
-public class CTSSuite extends TestCase {
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {test.sdo21.paramatizedTests.CTSParamatizedSuite.class, test.sdo21.tests.CTSGeneralSuite.class})
+public class CTSSuite {
 
-
-    public CTSSuite(String string) {
-        super(string);
-    }
+    private static TestHelper testHelper;
+    private static boolean initialized = false;
 
     /**
-     * JUnit suite() method allows all test to be run.
-     *
-     * @return Test suite
+     * Name of environment variable for vendor specific implementation for
+     * implementation of {@link test.sdo21.framework.TestHelper}
      */
-    public static Test suite() {
+    public static final String SDO_CTS_TESTHELPER_CLASS = "CTS_TEST_HELPER";
 
-        // validate the setup first
-        try {
-            getTestHelper().getTypeHelper();
-        } catch (Exception e) {
-            throw new RuntimeException( "Failed to load SDO implementation", e );
+    /**
+     * Called before SDO CTS is executed. Provides the means for implementation
+     * specific initialization of SDO infrastructure.
+     */
+    @BeforeClass
+    public static void init() {
+        if (!initialized) {
+            try {
+                String helperClassName = System.getenv(SDO_CTS_TESTHELPER_CLASS);               
+                
+                if ((helperClassName == null) || (helperClassName.equals(""))) {
+                    System.out.println(SDO_CTS_TESTHELPER_CLASS + " was not set - attempting Tuscany implementation : " + helperClassName );
+                    
+                    Map<String, String> map = System.getenv();
+                    Set s = map.keySet();
+                    for (Iterator i=s.iterator();i.hasNext();){
+                        String key = (String) i.next();
+                        System.out.println(key +":" + map.get(key));
+                    }                    
+                    helperClassName = "test.sdo21.vendor.tuscany.testHelper.TuscanyTestHelper";
+                }
+
+                testHelper = (TestHelper)Class.forName(helperClassName).newInstance();
+                System.out.println("Loaded " + helperClassName);
+                // initialize SDO implementation
+                testHelper.init();
+                initialized = true;
+
+            } catch (Exception e) {
+                System.out.println("Could not initialize test cases correct " + e.toString());
+                e.printStackTrace();
+            }
         }
-
-        // create the test suite
-        TestSuite suite = new TestSuite();
-
-        // add the individual tests to the test suite (later on we should provide configuration
-        // options so user can choose between mandatory/optional/proposed/mandatory tests
-        suite.addTest( new TestSuite(DataObjectTest.class ) );
-        suite.addTest( new TestSuite(TypeConversionTest.class ) );
-
-        // return the test suite
-        return suite;
     }
 
     /**
      * Main method allows tests to be run directly from command-line.
-     *
+     * 
      * @param args
      */
+    // TODO: add some usefull paramaters here such as helper class or junit
+    // runner
     public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
+        try {
+            // TODO: provide vender specific initialization
+            org.junit.runner.JUnitCore.runClasses(Class.forName("test.sdo21.CTSSuite"));
+        } catch (ClassNotFoundException e) {
+            System.out.println("Exception " + e.toString());
+            e.printStackTrace();
+        }
     }
 
     /**
-     * Load the vendor's TestHelper implementation (or the default generic one).
-     *
+     * Get the vendor's TestHelper implementation (or the default generic one).
+     * 
      * @return
      * @throws Exception
      */
-    public static TestHelper getTestHelper() throws Exception {
-        // we should load the class name from a properties file or make it a parameter
-        String helperClassName = "test.sdo21.framework.DefaultTestHelper";
-        return (TestHelper) Class.forName(helperClassName).newInstance();
-    }
+    public static TestHelper getTestHelper() {
+        if (!initialized) {
+            init();
+        }
+        return testHelper;
 
+    }
 
 }

Modified: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/TestHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/TestHelper.java?view=diff&rev=501803&r1=501802&r2=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/TestHelper.java (original)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/TestHelper.java Wed Jan 31 03:18:45 2007
@@ -1,5 +1,4 @@
-/**
- *
+/*
  *  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
@@ -16,35 +15,97 @@
  *  KIND, either express or implied.  See the License for the
  *  specific language governing permissions and limitations
  *  under the License.
+ *  
+ *  $Rev$  $Date$
  */
 package test.sdo21.framework;
 
+import java.util.Collection;
+
+import commonj.sdo.DataGraph;
 import commonj.sdo.DataObject;
 import commonj.sdo.Type;
+import commonj.sdo.helper.CopyHelper;
 import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.DataHelper;
+import commonj.sdo.helper.EqualityHelper;
 import commonj.sdo.helper.TypeHelper;
 import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
 
 /**
- * Vendors can provide an implementation of this interface to bootstrap their SDO implementation.
- *
+ * Vendors can provide an implementation of this interface to bootstrap their
+ * SDO implementation.
  */
 public interface TestHelper {
 
-    /**
+	public static final String INCOMPLETE_TEST_CASE_FAILURE = "The following test cases is incomplete";
+    
+	/**
      * Initialize the SDO implementation being tests.
      */
     public void init();
 
+    /**
+     *
+     * @return XMLHelper
+     */
     public XMLHelper getXMLHelper();
+    
+    /**
+     *
+     * @return XSDHelper
+     */
+    public XSDHelper getXSDHelper();
 
+    /**
+     *
+     * @return TypeHelper
+     */
     public TypeHelper getTypeHelper();
 
+    /**
+     *
+     * @return DataFactory
+     */
     public DataFactory getDataFactory();
+    
+    /**
+     *
+     * @return DataHelper
+     */
+    public DataHelper getDataHelper();
+    
+    /**
+     *
+     * @return EqualityHelper
+     */
+    public EqualityHelper getEqualityHelper();
+    
+    /**
+     *
+     * @return CopyHelper
+     */
+    public CopyHelper getCopyHelper();
+    
+    
+    
+    
+
+    /**
+     * Returns collection containing DataObject, String pairs to be used as
+     * arguments to paramatized test cases. DataObjects should adhere to
+     * api_test.xsd and should be populated. The String should be a description
+     * of the mechanism used to create and populate the DataObject. See
+     * {@link test.sdo21.vendorSpecific.tuscany.testHelper.TuscanyTestHelper} for examples.
+     * 
+     * @return
+     */
+    public Collection getParamatizedDataObject();
 
     /**
      * Convenience method for creating a type definition.
-     *
+     * 
      * @param uri
      * @param name
      * @return
@@ -53,6 +114,7 @@
 
     /**
      * Convenience method for creating a property definition
+     * 
      * @param typeDef The type definition that this property should be added to
      * @param name The name for the property
      * @param type The type to assign to the property
@@ -60,23 +122,52 @@
      * @param isContainment
      * @return
      */
-    public DataObject createPropertyDef(DataObject typeDef, String name, Type type, boolean isMany, boolean isContainment);
+    public DataObject createPropertyDef(DataObject typeDef,
+                                        String name,
+                                        Type type,
+                                        boolean isMany,
+                                        boolean isContainment);
 
     /**
      * Convenience method for creating a property definition
+     * 
      * @param typeDef The type definition that this property should be added to
      * @param name The name for the property
-     * @param type The type to assign to the property e.g. "commonj.sdo#DataObject"
+     * @param type The type to assign to the property e.g.
+     *            "commonj.sdo#DataObject"
      * @param isMany
      * @param isContainment
      * @return
      */
-    public DataObject createPropertyDef(DataObject typeDef, String name, String type, boolean isMany, boolean isContainment);
+    public DataObject createPropertyDef(DataObject typeDef,
+                                        String name,
+                                        String type,
+                                        boolean isMany,
+                                        boolean isContainment);
 
     /**
-     * Convenience method for creating a unique name that can be used for a property or type.
-     *
+     * Convenience method for creating a unique name that can be used for a
+     * property or type.
+     * 
      * @return String containing a unique name
      */
     public String createUniqueName();
+    
+    
+    /**
+     * Create an empty data graph.
+     * @return the new data graph instance.
+     */
+    public DataGraph createDataGraph();
+  
+    
+    /**
+     * Register and initialize the SDO types supported by the specified generated factory class.
+     *  This function must be called before instances of the generated types can be created/used.
+     *  The registered types will be visible in all TypeHelper's created in the same classLoader
+     *  scope as the call to this function.
+     * @param factoryClass the generated factory class.
+     */
+     public void registerStaticTypes(Class factoryClass);
+
 }

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html Wed Jan 31 03:18:45 2007
@@ -0,0 +1,25 @@
+<html>
+<!--
+  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$
+-->
+<body>
+Contains framework of this test suite.
+</body>
+</html>

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/framework/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html Wed Jan 31 03:18:45 2007
@@ -0,0 +1,25 @@
+<html>
+<!--
+  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$
+-->
+<body>
+Contains main CTS test file.
+</body>
+</html>

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,126 @@
+/*
+ *  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.paramatizedTests;
+
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.junit.runners.Parameterized.Parameters;
+
+import test.sdo21.CTSSuite;
+import test.sdo21.paramatizedTests.util.ParamatizedTestUtil;
+import test.sdo21.paramatizedTests.util.TypeCreateUtility;
+
+import commonj.sdo.DataObject;
+
+/**
+ * BaseSDOParamatizedTest provides a DataObject and String instance variable
+ * which are populated by Junit Paramaatized Test Runner prior to tests being
+ * run. The data method provides a Collection of DataObject/String pairs which
+ * should be used to populate these instance variables. This allows for test
+ * cases to be executed using a variety of Type registration and DataObject
+ * population combinations which is essentual for good SDO test coverage.
+ * 
+ */
+public class BaseSDOParamatizedTest {
+
+	public DataObject testDO;
+
+	public String description;
+
+	public BaseSDOParamatizedTest(DataObject testDO, String description) {
+		this.testDO = testDO;
+		this.description = description;
+	}
+
+	/**
+	 * Returns a collection of data populated DataObjects which are used during
+	 * the test.
+	 */
+	@Parameters
+	public static Collection data() {
+
+		// TODO: use properties file and TestHelper to populate this Collection
+		// with desired DataObjects
+		ArrayList list = new ArrayList();
+		list.add(new Object[] { createDynamicDO(), new String("Dynamic") });
+		list.add(new Object[] { createMixedDO(), new String("Mixed") });
+
+		// add vendor specific paramaters
+		try {
+			test.sdo21.CTSSuite.init();
+			Collection c = test.sdo21.CTSSuite.getTestHelper()
+					.getParamatizedDataObject();
+			list.addAll(c);
+
+		} catch (Exception e) {
+			System.out.println("Could not add vendor specific paramaters");
+			e.printStackTrace();
+		}
+		return list;
+	}
+
+	/**
+	 * Creates and populates a dynamic DataObject
+	 */
+	private static DataObject createDynamicDO() {
+		TypeCreateUtility.createDynamically();
+		DataObject testDO = CTSSuite.getTestHelper().getDataFactory().create(
+				ParamatizedTestUtil.TEST_NAMESPACE, "APITest");
+		try {
+			ParamatizedTestUtil.populateFields(testDO);
+		} catch (Exception e) {
+			fail("Exception caught " + e.toString());
+			e.printStackTrace();
+		}
+		return testDO;
+	}
+
+	/**
+	 * Creates and populates a DataObject that has Type define by an XSD but is
+	 * dynamically populated.
+	 */
+	private static DataObject createMixedDO() {
+
+		try {
+			TypeCreateUtility.createDynamicWithStaticResources();
+			DataObject testDO = CTSSuite.getTestHelper().getDataFactory()
+					.create(ParamatizedTestUtil.TEST_NAMESPACE,
+							ParamatizedTestUtil.TEST_TYPE);
+
+			try {
+				ParamatizedTestUtil.populateFields(testDO);
+			} catch (Exception e) {
+				fail("Exception caught " + e.toString());
+				e.printStackTrace();
+			}
+			return testDO;
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/BaseSDOParamatizedTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,63 @@
+/*
+ *  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.paramatizedTests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+import test.sdo21.paramatizedTests.api.CopyEqualityTest;
+import test.sdo21.paramatizedTests.api.DataFactoryTest;
+import test.sdo21.paramatizedTests.api.DataGraphTest;
+import test.sdo21.paramatizedTests.api.PropertyTest;
+import test.sdo21.paramatizedTests.api.SequenceTest;
+import test.sdo21.paramatizedTests.api.TypeHelperTest;
+import test.sdo21.paramatizedTests.api.TypeTest;
+import test.sdo21.paramatizedTests.api.XMLHelperTest;
+import test.sdo21.paramatizedTests.conversion.TypeConversionTest;
+import test.sdo21.paramatizedTests.general.ActiveUpdatingTest;
+import test.sdo21.paramatizedTests.general.ContainmentTest;
+import test.sdo21.paramatizedTests.general.DeleteTest;
+
+/**
+ * Declares paramatized test classes to be run within Junit 4.1 Suite for SDO CTS
+ * which includes the following classes:<br>
+ * <ul>
+ *   <li>test.sdo21.paramatizedTests.api.CopyEqualityTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.DataFactoryTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.PropertyTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.SequenceTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.TypeHelperTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.TypeTest</li>
+ *   <li>test.sdo21.paramatizedTests.api.XMLHelperTest</li>
+ *   <li>test.sdo21.paramatizedTests.conversion.TypeConversionTest</li>
+ *   <li>test.sdo21.paramatizedTests.general.ActiveUpdatingTest</li>
+ *   <li>test.sdo21.paramatizedTests.general.ContainmentTest</li>
+ *   <li>test.sdo21.paramatizedTests.general.DeleteTest</li>
+ * </ul>
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {ActiveUpdatingTest.class, ContainmentTest.class, CopyEqualityTest.class, DataFactoryTest.class,
+                      //DataGraphTest.class, 
+                        DeleteTest.class, PropertyTest.class, SequenceTest.class,
+                      TypeConversionTest.class, TypeHelperTest.class, TypeTest.class, XMLHelperTest.class})
+public class CTSParamatizedSuite {
+
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/CTSParamatizedSuite.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,159 @@
+/*
+ *  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.paramatizedTests;
+
+// static imports simply allow you to call assertTrue rather than
+// Assert.assertTrue
+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 org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.CTSSuite;
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+import test.sdo21.paramatizedTests.util.ParamatizedTestUtil;
+
+import commonj.sdo.DataObject;
+
+/**
+ * Example test class to be used as a template for paramatized SDO test cases.
+ * This class extends {@link test.sdo21.paramatizedTest.BaseSDOParamatizedTest}
+ * which simply will populate a DataObject called testSDO, that adheres to
+ * api_test.xsd using a variety of means. The test methods will be called once
+ * for every instance of testDO. <br>
+ * <br>
+ * The test case can be run using Junit within eclipse, from normal command line
+ * junit, or within a WebSphere build environment by adding an target such as
+ * sampleTestTarget that is contained within the build.xml file of the
+ * WAS.soa.sdo.cts component. <br>
+ * <br>
+ * Once a test case has been completed and reviewed it can be added into the
+ * appropiate CTS Suite.<br>
+ * <br>
+ * Test cases that are poorly suited to testing on DataObjects that adhere to
+ * api_test.xsd can easily be written as non paramatized tests and created
+ * within the {@link test.sdo21.tests} package structure.<br>
+ * <br>
+ * This test class should make every effort to only use methods that are defined
+ * within the current SDO Specification. If utility methods are required they
+ * should be added to {@link test.sdo21.framework.TestHelper} or
+ * {@link test.sdo21.paramatizedTests.util.ParamatizedTestUtil}. <br>
+ * <br>
+ * Please Document the overall intention of the test case and provide detailed
+ * javadoc for each test method. Please create modular test methods rather than
+ * single large test methods<br>
+ * <br>
+ * Resources:
+ * <UL>
+ * <LI><a href="http://www.junit.org/">Junit Fondation</a>
+ * <LI><a
+ * href="https://issues.apache.org/jira/browse/TUSCANY-1048">TUSCANY-1048</a>
+ * </UL>
+ * 
+ * Change History:
+ * <UL>
+ * <LI>Initial implementation
+ * </UL>
+ * 
+ */
+@RunWith(Parameterized.class)
+public class TestTemplate extends BaseSDOParamatizedTest {
+
+	public TestTemplate(DataObject testDO, String description) {
+		super(testDO, description);
+	}
+
+	/**
+	 * Example test method. Please provide good description of the test case in
+	 * javadoc including the intention, reference to the specification, etc.
+	 */
+	@Test
+	public void myTestMethod() {
+
+		String expected = new String("bla bla bla");
+		String actual = new String("bla bla bla");
+		assertEquals("Your Message", expected, actual);
+	}
+
+	/**
+	 * Sometimes you want to temporarily disable a test. Methods annotated with
+	 * {@link org.junit.Test} that are also annotated with <code>@Ignore</code> will not be executed as tests. Native JUnit 4 test
+	 *         runners should report the number of ignored tests along with the
+	 *         number of tests that ran and the number of tests that failed.
+	 *         <code>@Ignore</code> takes an optional default parameter if you want to record
+	 *         why a test is being ignored:<br>
+	 */
+	@Test
+	@Ignore("Function Foo is not clearly defined within the SDO 2.1 specification and is currently being defined as a part of the x.x specification.")
+	public void exampleIngoredTestCase() {
+		// test method here
+	}
+
+	/**
+	 * Sometimes you may not have the resources to implement a test case. If is
+	 * very very valuable to create method signatures in the appropiate classes
+	 * for test cases that are currently not covered. In cases such as these
+	 * please define and checkin method signatures with the following failure
+	 * message.
+	 * <br><br>
+	 * In this case you should ensure that the class that contains the test method is 
+	 * added to a testSuite such as {@link test.sdo21.paramatizedTests.CTSParamatizedSuite} 
+	 * so that it will be completed, or open a defect/JIRA to complete the test case.
+	 */
+	@Test
+	public void exampleUnimplementedTestCase() {
+		fail("The following test case has been defined but not implemented.  TestName.  Brief test description");
+		// test method here
+	}
+
+	/**
+	 * When writing tests, it is common to find that several tests need similar
+	 * objects created before they can run. Annotating a
+	 * <code>public void</code> method with <code>@Before</code> causes that method to be run before the
+	 *         {@link org.junit.Test} method. The <code>@Before</code> methods of superclasses will be run before those of the
+	 *         current class. There is also an <code>@After</code> annotation
+	 * 
+	 */
+	public void testCaseInit() {
+		//initMethod
+	}
+
+	/**
+	 * Sometimes several tests need to share computationally expensive setup
+	 * (like logging into a database). While this can compromise the
+	 * independence of tests, sometimes it is a necessary optimization.
+	 * Annotating a <code>public static void</code> no-arg method with
+	 * <code>@BeforeClass</code> causes it to be run once before any of the test
+	 *              methods in the class. The <code>@BeforeClass</code> methods of superclasses will be run before those the
+	 *              current class.
+	 */
+	public static void init() {
+		//init
+	}
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/TestTemplate.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,80 @@
+/*
+ *  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.paramatizedTests.api;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.CTSSuite;
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.EqualityHelper;
+
+/**
+ * TestCase tests shallow and deep copy functions of CopyHelper utilizing the
+ * EqualityHelper class. Can be used to test dynamic, mixed and static
+ * DataObjects
+ * 
+ */
+@RunWith(Parameterized.class)
+public class CopyEqualityTest extends BaseSDOParamatizedTest {
+
+    public CopyEqualityTest(DataObject testDO, String description) {
+        super(testDO, description);
+    }
+
+    /**
+     * testCopyEqualityShallow performs a shallow copy. Between the source and
+     * output for the copy - Shallow equality should be true, deep equality
+     * should be false (assuming passed DO includes a containment reference).
+     */
+    @Test
+    public void testCopyEqualityShallow() {
+        DataObject shallowCopy = CTSSuite.getTestHelper().getCopyHelper().copyShallow(testDO);        
+        
+        EqualityHelper equalityH = CTSSuite.getTestHelper().getEqualityHelper();
+        
+        assertTrue("Shallow copy did not result in shallow equality", equalityH.equalShallow(testDO,
+                                                                                                           shallowCopy));
+
+        // TODO: Determine why Deep equality results when Type is sequenced.
+
+        assertFalse("Shallow copy should not result in deep equality for this Type.", equalityH
+            .equal(testDO, shallowCopy));
+    }
+
+    /**
+     * testCopyEqualityDeep performs a deep copy. Between the source and output
+     * for the copy - Both shallow and deep equality should be true.
+     */
+    @Test
+    public void testCopyEqualityDeep() {
+        DataObject deepCopy = CTSSuite.getTestHelper().getCopyHelper().copy(testDO);
+        assertTrue("Deep copy did not result in shallow equality.", CTSSuite.getTestHelper().getEqualityHelper().equalShallow(testDO,
+                                                                                                         deepCopy));
+        assertTrue("Deep copy did not result in deep equality.", CTSSuite.getTestHelper().getEqualityHelper().equal(testDO, deepCopy));
+    }
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/CopyEqualityTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,137 @@
+/*
+ *  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.paramatizedTests.api;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.CTSSuite;
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+import test.sdo21.paramatizedTests.util.ParamatizedTestUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+
+/**
+ * Junit 4.1 test case. Tests DataFactory APIs.
+ * 
+ */
+@RunWith(Parameterized.class)
+public class DataFactoryTest extends BaseSDOParamatizedTest {
+    public DataFactoryTest(DataObject testDO, String description) {
+        super(testDO, description);
+    }
+
+    /**
+     * testDataFactoryAPI calls each of the methods in the DataFactory class and
+     * verifies their proper operation.
+     */
+    @Test
+    public void testDataFactoryAPI() {
+        Type type = testDO.getType();
+        boolean errorCaught;
+
+        DataObject typeDO = CTSSuite.getTestHelper().getDataFactory().create(type);
+
+        /**
+         * Verify the proper operation of DataFactory.create(Type).
+         */
+
+        assertNotNull("DataFactory.create(Type) did not return a DataObject as expected", typeDO);
+
+        assertTrue("DataFactory.create(Type) did not return a DataObject of the expected Type.", ParamatizedTestUtil
+            .areEqualTypes(typeDO.getType(), type));
+
+        /**
+         * Verify the proper operation of DataFactory.create(URI, Name).
+         */
+
+        DataObject uriDO = CTSSuite.getTestHelper().getDataFactory().create(type.getURI(), type.getName());
+
+        assertNotNull("DataFactory.create(URI, Name) did not return a DataObject as expected.", uriDO);
+
+        assertTrue("DataFactory.create(URI, Name) did not return a DataObject of the expected Type.", ParamatizedTestUtil
+            .areEqualTypes(uriDO.getType(), type));
+
+        /**
+         * Verify the proper operation of DataFactory.create(Class).
+         */
+
+        if (type.getInstanceClass() != null) {
+            DataObject classDO = CTSSuite.getTestHelper().getDataFactory().create(type.getInstanceClass());
+
+            assertNotNull("DataFactory.create(Class) did not return a DataObject as expected.", classDO);
+
+            assertTrue("DataFactory.create(Class) did not return a DataObject of the expected Type.", ParamatizedTestUtil
+                .areEqualTypes(classDO.getType(), type));
+
+        }
+
+        /**
+         * Verify that DataFactory.create with DataType results in
+         * IllegalArgumentException
+         */
+
+        errorCaught = false;
+        try {
+            Type dataType = CTSSuite.getTestHelper().getTypeHelper().getType("commonj.sdo", "Int");
+            assertTrue("Could not test DataFactory.create(dataType) because dataType.isDataType = false", dataType
+                .isDataType());
+            CTSSuite.getTestHelper().getDataFactory().create(dataType);
+
+        } catch (IllegalArgumentException e) {
+            errorCaught = true;
+        } catch (Exception e) {
+            fail("DataFactory.create(dataType) did not throw the expected IllegalArgumentException Exception.");
+        }
+        assertTrue("DataFactory.create(dataType) did not throw the an Exception.", errorCaught);
+
+        /**
+         * Verify that DataFactory.create with Abstract Type results in
+         * IllegalArgumentException Currently commented out due to this test
+         * case failing.
+         */
+
+        // TODO: Uncomment the following (and edit the documentation just above)
+        // TODO: JIRA ?
+        /*
+         * try { errorCaught = false; Type abstractType =
+         * CTSSuite.getTestHelper().getTypeHelper.getType(FVTUtil.TEST_NAMESPACE, "Abstract"); if
+         * (abstractType.isAbstract())
+         * CTSSuite.getTestHelper().getDataFactory().create(abstractType); else throw new
+         * ExpectedConditionError("Could not test
+         * DataFactory.create(abstractType) because abstractType.isAbstract =
+         * false"); } catch (IllegalArgumentException e) { errorCaught = true; }
+         * catch (Exception e) { throw new
+         * ExpectedExceptionError("DataFactory.create(abstractType) did not
+         * throw the expected Exception.", IllegalArgumentException.class,
+         * e.getClass()); } if (!errorCaught) throw new
+         * ExpectedExceptionError("DataFactory.create(abstractType) did not
+         * throw an Exception.");
+         */
+    }
+
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataFactoryTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,122 @@
+/*
+ *  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.paramatizedTests.api;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+
+/**
+ * Junit 4.1 test case. Tests DataGraph APIs Extends
+ * 
+ */
+@RunWith(Parameterized.class)
+public class DataGraphTest extends BaseSDOParamatizedTest {
+
+    public DataGraphTest(DataObject testDO, String description) {
+        super(testDO, description);
+    }
+
+    /**
+     * testDataGraphAPI is used to test the methods of the DataGraph object
+     */
+    @Test
+    public void testDataGraphAPI() {
+        Type testType = testDO.getType();
+
+        /**
+         * Verify the proper function of DataGraph.createRootObject(Type).
+         */
+
+        DataGraph dataGraph1 = test.sdo21.CTSSuite.getTestHelper().createDataGraph();
+        DataObject rootDO1 = dataGraph1.createRootObject(testType);
+
+        assertEquals("DataObject.getDataGraph() did not return the expected DataGraph.",
+                     rootDO1.getDataGraph(),
+                     dataGraph1);
+
+        assertEquals("DataGraph.getRootObject() did not return the expected DataObject.",
+                     dataGraph1.getRootObject(),
+                     rootDO1);
+
+        /**
+         * Verify the proper function of DataGraph.createRootObject(URI,Name).
+         */
+
+        DataGraph dataGraph2 = test.sdo21.CTSSuite.getTestHelper().createDataGraph();
+        DataObject rootDO2 = dataGraph2.createRootObject(testType.getURI(), testType.getName());
+
+        assertEquals("DataObject.getDataGraph() did not return the expected DataGraph.",
+                     rootDO2.getDataGraph(),
+                     dataGraph2);
+
+        assertEquals("DataGraph.getRootObject() did not return the expected DataObject.",
+                     dataGraph2.getRootObject(),
+                     rootDO2);
+
+        /**
+         * Verify the proper function of DataGraph.getChangeSummary()
+         */
+
+        testGetChangeSummary(dataGraph1);
+        testGetChangeSummary(dataGraph2);
+
+        /**
+         * Verify the proper function of DataGraph.getType(URI, Name).
+         */
+        assertEquals("DataGraph.getType() did not return the expected Type.",
+                     dataGraph1.getType(testType.getURI(), testType.getName()),
+                     testType);
+
+        assertEquals("DataGraph.getType() did not return the expected Type.",
+                     dataGraph2.getType(testType.getURI(), testType.getName()),
+                     testType);
+    }
+
+    /**
+     * testGetChangeSummary performs some verification on the ChangeSummary
+     * returned by DataGraph.getChangeSummary()
+     */
+    private void testGetChangeSummary(DataGraph generatingDG) {
+        ChangeSummary generatedCS = generatingDG.getChangeSummary();
+
+        assertNotNull("DataGraph.getChangeSummary() returned a null ChangeSummary.", generatedCS);
+
+        assertEquals("The ChangeSummary returned by DataGraph.getChangeSummary() did not return refer to the generating DataGraph.",
+                     generatedCS.getDataGraph(),
+                     generatingDG);
+
+        assertEquals("The ChangeSummary returned by DataGraph.getChangeSummary() and the DataGraph have different root Objects. ",
+                     generatedCS.getRootObject(),
+                     generatingDG.getRootObject());
+
+    }
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/DataGraphTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,173 @@
+/*
+ *  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.paramatizedTests.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.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.CTSSuite;
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+import test.sdo21.paramatizedTests.util.ParamatizedTestUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+
+/**
+ * Junit 4.1 test case.  Tests API for Property.
+ * 
+ */
+@RunWith(Parameterized.class)
+public class PropertyTest extends BaseSDOParamatizedTest {
+
+    public PropertyTest(DataObject testDO, String description) {
+        super(testDO, description);
+    }
+    /**
+     * testPropertyAPI is used to test the methods of the Property API:
+     * <ul>
+     *   <li>getName()</li>
+     *   <li>getType()</li>
+     *   <li>isMany()</li>
+     *   <li>isContainment()</li>
+     *   <li>isReadOnly()</li>
+     *   <li>getContainingType()</li>
+     *   <li>getAliasNames()</li>
+     *   <li>getOpposite()</li>
+     * </ul>
+     */
+    @Test
+    public void testPropertyAPI() {
+        Property property;
+
+        /**
+         * Verify Property.getDefault() for both a newly created DataObject and
+         * a cleared DataObject.
+         */
+
+        verifyGetDefault(CTSSuite.getTestHelper().getDataFactory().create(testDO.getType()));
+
+        // Set the values for each Property using populateFields, then unset
+        // them using unsetFields.
+
+        try{
+        	ParamatizedTestUtil.populateFields(testDO);
+        }catch(Exception e){
+        	fail("Exception caught " + e.toString());
+        	e.printStackTrace();
+        }
+        unsetFields(testDO);
+        verifyGetDefault(testDO);
+
+        property = testDO.getProperty("children");
+
+        /**
+         * Verify getName, getType, isMany==true, isContainment==true
+         */
+        assertEquals("Property.getName() returned an unexpected value.", property.getName(), "children");
+        assertEquals("Property.getType() returned an unexpected value.", property.getType(), testDO.getType());
+        assertTrue("Property.isMany() returned an unexpected value.", property.isMany());
+        assertTrue("Property.isContainment() returned an unexpected value.", property.isContainment());
+
+        property = testDO.getProperty("booleanVal");
+
+        /**
+         * Verify isMany==false, isReadOnly==false, isCtonainment==false,
+         * getContainingType, getAliasNames, getOpposite
+         */
+
+        assertEquals("Property.getName() returned an unexpected value.", property.getName(), "booleanVal");
+
+        assertFalse("Property.isMany() returned an unexpected value.", property.isMany());
+
+        assertFalse("Property.isReadOnly() returned an unexpected value.", property.isReadOnly());
+
+        assertFalse("Property.isContainment() returned an unexpected value.", property.isContainment());
+
+        assertEquals("Property.getContainingType() returned an unexpected value.", property.getContainingType(), testDO
+            .getType());
+
+        assertEquals("Property.getAliasNames() returned a List of unexpected size.", property.getAliasNames().size(), 0);
+
+        // TODO: Uncomment the following when SDOUtil.addAliasName is
+        // implemented
+        /*
+         * List aliasNames = testDO.getProperty("decimalVal2").getAliasNames();
+         * if (aliasNames.size() != 1) throw new
+         * ReturnValueError("Property.getAliasNames() returned a List of
+         * unexpected size.", Integer.valueOf(1),
+         * Integer.valueOf(property.getAliasNames().size())); else if
+         * (!(aliasNames.get(0).equals("Dec2"))) throw new
+         * ReturnValueError("Property.getAliasNames() returned a List with
+         * unexpected contents.", "Dec2", aliasNames.get(0));
+         */
+        assertNull("Property.getOpposite() did not return null as expected.", property.getOpposite());
+    }
+
+    /**
+     * 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.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();
+
+        for (int i = 0; i < properties.size(); i++)
+            unsetDO.unset(i);
+    }
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/PropertyTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java?view=auto&rev=501803
==============================================================================
--- incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java (added)
+++ incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java Wed Jan 31 03:18:45 2007
@@ -0,0 +1,487 @@
+/*
+ *  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.paramatizedTests.api;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import test.sdo21.paramatizedTests.BaseSDOParamatizedTest;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+
+/**
+ * Junit 4.1 test case. Tests tests methods of Sequence API
+ * 
+ */
+@RunWith(Parameterized.class)
+public class SequenceTest extends BaseSDOParamatizedTest {
+
+    public SequenceTest(DataObject testDO, String description) {
+        super(testDO, description);
+    }
+
+    /**
+     * testSequenceAPI tests the methods of the Sequence API
+     */
+    @Test
+    public void testSequenceAPI() {
+        DataObject sequenceDO = testDO.getDataObject("sequencedElem");
+        Property numberProp = sequenceDO.getProperty("Numbers");
+        Property letterProp = sequenceDO.getProperty("Letters");
+        Property invalidProp = testDO.getProperty("dateVal");
+
+        int numberIndex = 0, letterIndex = 0, invalidIndex, sequenceSize = 0, sequenceIndex;
+
+        List properties = sequenceDO.getType().getProperties();
+
+        invalidIndex = properties.size();
+
+        for (int i = 0; i < properties.size(); i++) {
+            if (((Property)properties.get(i)).equals(numberProp))
+                numberIndex = i;
+            else if (((Property)properties.get(i)).equals(letterProp))
+                letterIndex = i;
+        }
+
+        /**
+         * Ensure that the DataObject is sequenced as expected.
+         */
+
+        assertTrue("The created Type 'Sequenced' has Type.isSequenced() == false.  The test case may not proceed.",
+                   sequenceDO.getType().isSequenced());
+
+        Sequence sequence = sequenceDO.getSequence();
+        boolean errorCaught;
+
+        assertEquals("Sequence.size() returned an unexpected value.", sequence.size(), 0);
+
+        /**
+         * Verify that the index specified methods throw an Exception for an
+         * invalid index.
+         */
+
+        try {
+            errorCaught = false;
+            sequence.getProperty(0);
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+
+        assertTrue("Sequence.getProperty() should throw an Exception when an invalid index is given.", errorCaught);
+
+        try {
+            errorCaught = false;
+            sequence.remove(0);
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.remove() should throw an Exception when an invalid index is given.", errorCaught);
+
+        try {
+            errorCaught = false;
+            sequence.getValue(0);
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.getValue() should throw an Exception when an invalid index is given.", errorCaught);
+
+        try {
+            errorCaught = false;
+            sequence.setValue(0, "attempt");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+
+        assertTrue("Sequence.setValue() should throw an Exception when an invalid index is given.", errorCaught);
+
+        // Add elements to the Sequence by updating the DataObject
+
+        List letterList = sequenceDO.getList("Letters");
+        List numberList = sequenceDO.getList("Numbers");
+
+        letterList.add("A");
+        letterList.add("B");
+        numberList.add(Integer.valueOf(5));
+        letterList.add("C");
+        numberList.add(Integer.valueOf(16));
+
+        sequenceSize = 5;
+
+        // The expected arrangement of sequence is as follows
+        // {<Letters, "A">, <Letters, "B">, <Numbers, 5>, <Lettes, "C">,
+        // <Numbers, 16>}
+
+        /**
+         * Verify performance of size, getProperty, and getValue
+         */
+
+        assertEquals("Sequence.size() returned an unexpected value.", sequence.size(), sequenceSize);
+
+        assertEquals("Sequence.getProperty() returned an unexpected Property.", sequence.getProperty(1), letterProp);
+
+        assertEquals("Sequence.getProperty() returned an unexpected Property.", sequence.getProperty(4), numberProp);
+
+        assertEquals("Sequence.getValue() returned an unexpected value.", sequence.getValue(0), "A");
+
+        assertEquals("Sequence.getValue() returned an unexpected value.", sequence.getValue(2), 5);
+
+        /**
+         * Use setValue to modify the Sequence, then verify the outcome
+         */
+
+        sequence.setValue(1, "F");
+
+        // Expect: {<Letters, "A">, <Letters, "F">, <Numbers, 5>, <Lettes, "C">,
+        // <Numbers, 16>}
+
+        assertEquals("Sequence.setValue() did not have the intended effect.", sequence.getValue(1), "F");
+
+        /**
+         * Use Sequence.remove() to modify the Sequence, then verify the outcome
+         */
+
+        sequence.remove(1);
+        sequenceSize--;
+
+        // Expect: {<Letters, "A">, <Numbers, 5>, <Lettes, "C">, <Numbers, 16>}
+        assertEquals("Sequence.remove() did not decrement the size of the Sequence.", sequence.size(), sequenceSize);
+
+        assertEquals("Sequence.remove() did not shift the elements as expected.", sequence.getValue(1), 5);
+
+        // TODO: Change the following to addText when the API is changed.
+
+        /**
+         * Use Sequence.add() to modify the Sequence, then verify the outcome
+         */
+
+        sequence.add("Structured text at the end.");
+        sequenceSize++;
+
+        // Expect: {<Letters, "A">, <Numbers, 5>, <Lettes, "C">, <Numbers, 16>,
+        // "Structured text at the end"}
+
+        assertEquals("Sequence.add(String) did not increment the size of the Sequence.", sequence.size(), sequenceSize);
+
+        assertEquals("Sequence.add(String) did not place the correct value at the correct index.", sequence
+            .getValue(sequenceSize - 1), "Structured text at the end.");
+
+        assertNull("Sequence.add(String) should result in a null Property in the final index.", sequence
+            .getProperty(sequenceSize - 1));
+
+        /**
+         * Use Sequence.move() to modify the Sequence, then verify the outcome
+         */
+
+        sequence.move(1, 3);
+
+        // Expect: {<Letters, "A">, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">,
+        // "Structured text at the end"}
+        assertEquals("Sequence.move() had an unexpected effect on the size of the Sequence.",
+                     sequence.size(),
+                     sequenceSize);
+
+        assertEquals("Sequence.move() did not place the expected value at the expected location.",
+                     sequence.getValue(1),
+                     16);
+
+        assertEquals("Sequence.move() had an unexpected effect on the index following the move-to index.", sequence
+            .getValue(2), 5);
+
+        /**
+         * Attempt move with an invalid index and verify the error handling.
+         */
+
+        try {
+            errorCaught = false;
+            sequence.move(0, 5);
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.move() should throw an Exception when an invalid Exception is given.", errorCaught);
+
+        /**
+         * Use Sequence.add(Property, Object) to modify the Sequence, then
+         * verify the outcome
+         */
+
+        sequence.add(numberProp, Integer.valueOf(8));
+        sequenceSize++;
+
+        // Expect: {<Letters, "A">, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">,
+        // "Structured text at the end", <Numbers, 8>}
+
+        assertEquals("Sequence.add(Property, Object) did not increment the size of the Sequence.",
+                     sequence.size(),
+                     sequenceSize);
+        assertEquals("Sequence.add(Property, Object) did not place the expected value at the expected index.", sequence
+            .getValue(sequenceSize - 1), 8);
+
+        assertEquals("Sequence.add(Property, Object) did not place the expected Property at the expected index.",
+                     sequence.getProperty(sequenceSize - 1),
+                     numberProp);
+        assertEquals("Sequence.add(Property, Object) did not place the expected Property at the expected index.",
+                     sequence.getProperty(sequenceSize - 1),
+                     numberProp);
+
+        /**
+         * Attempt add(Property, Object) with an invalid Property and verify the
+         * error handling
+         */
+
+        try {
+            errorCaught = false;
+            sequence.add(invalidProp, "A");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(Property, Object) should throw an Exception when an invalid Property is given.",
+                   errorCaught);
+
+        /**
+         * Use Sequence.add(String, Object) to modify the Sequence, then verify
+         * the outcome
+         */
+
+        sequence.add("Letters", "K");
+        sequenceSize++;
+
+        // Expect: {<Letters, "A">, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">,
+        // "Structured text at the end", <Numbers, 8>, <Letters, "K">}
+
+        assertEquals("Sequence.add(String, Object) did not increment the size of the Sequence.",
+                     sequence.size(),
+                     sequenceSize);
+
+        assertEquals("Sequence.add(String, Object) did not place the expected value at the expected index.", sequence
+            .getValue(sequenceSize - 1), "K");
+
+        assertEquals("Sequence.add(String, Object) did not place the expected Property at the expected index.",
+                     sequence.getProperty(sequenceSize - 1),
+                     letterProp);
+
+        /**
+         * Attempt add(String, Object) with an invalid String and verify the
+         * error handling
+         */
+
+        try {
+            errorCaught = false;
+            sequence.add("NoSuchProperty", "A");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(String, Object) should throw an Exception when an invalid Property is given.",
+                   errorCaught);
+
+        /**
+         * Attempt add(String, Object) with an invalid Object and verify the
+         * error handling
+         */
+
+        try {
+            errorCaught = false;
+            sequence.add("Numbers", "A");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(String, Object) should throw an Exception when an invalid Object is given.",
+                   errorCaught);
+
+        /**
+         * Use Sequence.add(int, Object) to modify the Sequence, then verify the
+         * outcome
+         */
+
+        sequence.add(numberIndex, Integer.valueOf(10));
+        sequenceSize++;
+
+        // Expect: {<Letters, "A">, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">,
+        // "Structured text at the end", <Numbers, 8>, <Letters, "K">, <Numbers,
+        // 10>}
+
+        assertEquals("Sequence.add(int, Object) did not increment the size of the Sequence.",
+                     sequence.size(),
+                     sequenceSize);
+        assertEquals("Sequence.add(int, Object) did not place the expected value at the expected index.", sequence
+            .getValue(sequenceSize - 1), 10);
+
+        assertEquals("Sequence.add(int, Object) did not place the expected Property at the expected index.", sequence
+            .getProperty(sequenceSize - 1), numberProp);
+
+        /**
+         * Attempt add(int, Object) with an invalid Object and verify the error
+         * handling
+         */
+
+        try {
+            errorCaught = false;
+            sequence.add(invalidIndex, Integer.valueOf(16));
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+
+        assertTrue("Sequence.add(int, Object) should throw an Exception when an invalid index is given.", errorCaught);
+
+        /**
+         * Use Sequence.add(int, String, Object) to modify the Sequence, then
+         * verify the outcome TODO This section is commented out until
+         * Tuscany-931 is resolved.
+         */
+
+        /*
+         * sequenceIndex = 1; sequence.add(sequenceIndex, "Numbers",
+         * Integer.valueOf(-4)); sequenceSize++; // Expect: {<Letters, "A">,
+         * <Numbers, -4>, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">,
+         * "Structured text at the end", // <Numbers, 8>, <Letters, "K">,
+         * <Numbers, 10>} if (sequence.size() != sequenceSize) throw new
+         * ExpectedConditionError("Sequence.add(int, String, Object) did not
+         * increment the size of the Sequence.", Integer.valueOf(sequenceSize),
+         * Integer.valueOf(sequence.size())); if
+         * (!(sequence.getValue(sequenceIndex).equals(Integer.valueOf(-4))))
+         * throw new ExpectedConditionError("Sequence.add(int, String, Object)
+         * did not place the expected value at the expected index.",
+         * Integer.valueOf(-4), sequence.getValue(sequenceIndex)); if
+         * (!(sequence.getProperty(sequenceIndex).equals(numberProp))) throw new
+         * ExpectedConditionError("Sequence.add(int, String, Object) did not
+         * place the expected Property at the expected index.", numberProp,
+         * sequence.getProperty(sequenceIndex));
+         */
+        /**
+         * Use Sequence.add(int, Property, Object) to modify the Sequence, then
+         * verify the outcome TODO This section is commented out until
+         * Tuscany-931 is resolved.
+         */
+        /*
+         * sequenceIndex = 0; sequence.add(sequenceIndex, numberProp,
+         * Integer.valueOf(17)); sequenceSize++; // Expect: {<Numbers, 17>,
+         * <Letters, "A">, <Numbers, -4>, <Numbers, 16>, <Numbers, 5>, <Lettes,
+         * "C">, "Structured text at the end", // <Numbers, 8>, <Letters, "K">,
+         * <Numbers, 10>} if (sequence.size() != sequenceSize) throw new
+         * ExpectedConditionError("Sequence.add(int, Property, Object) did not
+         * increment the size of the Sequence.", Integer.valueOf(sequenceSize),
+         * Integer.valueOf(sequence.size())); if
+         * (!(sequence.getValue(sequenceIndex).equals(Integer.valueOf(17))))
+         * throw new ExpectedConditionError("Sequence.add(int, Property, Object)
+         * did not place the expected value at the expected index.",
+         * Integer.valueOf(17), sequence.getValue(sequenceIndex)); if
+         * (!(sequence.getProperty(sequenceIndex).equals(numberProp))) throw new
+         * ExpectedConditionError("Sequence.add(int, Property, Object) did not
+         * place the expected Property at the expected index.", numberProp,
+         * sequence.getProperty(sequenceIndex));
+         */
+        /**
+         * Use Sequence.add(int, int, Object) to modify the Sequence, then
+         * verify the outcome TODO This section is commented out until
+         * Tuscany-931 is resolved.
+         */
+        /*
+         * sequenceIndex = 9; sequence.add(sequenceIndex, letterIndex, "S");
+         * sequenceSize++; // Expect: {<Numbers, 17>, <Letters, "A">, <Numbers,
+         * -4>, <Numbers, 16>, <Numbers, 5>, <Lettes, "C">, "Structured text at
+         * the end", // <Numbers, 8>, <Letters, "K">, <Letters, "S">, <Numbers,
+         * 10>} if (sequence.size() != sequenceSize) throw new
+         * ExpectedConditionError("Sequence.add(int, Property, Object) did not
+         * increment the size of the Sequence.", Integer.valueOf(sequenceSize),
+         * Integer.valueOf(sequence.size())); if
+         * (!(sequence.getValue(sequenceIndex).equals("S"))) throw new
+         * ExpectedConditionError("Sequence.add(int, Property, Object) did not
+         * place the expected value at the expected index.", "S",
+         * sequence.getValue(sequenceIndex)); if
+         * (!(sequence.getProperty(sequenceIndex).equals(letterProp))) throw new
+         * ExpectedConditionError("Sequence.add(int, Property, Object) did not
+         * place the expected Property at the expected index.", letterProp,
+         * sequence.getProperty(sequenceIndex));
+         */
+
+        /**
+         * Attempt Sequnce.add(int, int, Object) with an invalid Sequence index
+         * and verify proper error handling.
+         */
+
+        try {
+            errorCaught = false;
+            sequence.add(sequence.size(), letterIndex, "Z");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(int, int, Object) should throw an Exception when an invalid Sequence index is given.",
+                   errorCaught);
+
+        /**
+         * Attempt Sequnce.add(int, int, Object) with an invalid Property index
+         * and verify proper error handling.
+         */
+
+        sequenceIndex = 0;
+        try {
+            errorCaught = false;
+            sequence.add(sequenceIndex, invalidIndex, "Z");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(int, int, Object) should throw an Exception when an invalid Property index is given.",
+                   errorCaught);
+
+        /**
+         * Attempt Sequnce.add(int, Property, Object) with an invalid Property
+         * and verify proper error handling.
+         */
+
+        sequenceIndex = 0;
+        try {
+            errorCaught = false;
+            sequence.add(sequenceIndex, invalidProp, "Z");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+
+        assertTrue("Sequence.add(int, int, Object) should throw an Exception when an invalid Property is given.",
+                   errorCaught);
+
+        /**
+         * Attempt Sequnce.add(int, int, Object) with an invalid Property name
+         * and verify proper error handling.
+         */
+
+        sequenceIndex = 0;
+        try {
+            errorCaught = false;
+            sequence.add(sequenceIndex, "notAValidProperty", "Z");
+        } catch (Exception e) {
+            errorCaught = true;
+        }
+        assertTrue("Sequence.add(int, int, Object) should throw an Exception when an invalid Property name is given.",
+                   errorCaught);
+
+        // TODO: Test add(int, Object instaceof String) after add(int, String)
+        // is changed to addText(int, String).
+    }
+
+}

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/cts/sdo2.1/src/main/java/test/sdo21/paramatizedTests/api/SequenceTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org