summaryrefslogtreecommitdiffstats
path: root/sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java')
-rw-r--r--sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java b/sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java
new file mode 100644
index 0000000000..4d085eae28
--- /dev/null
+++ b/sdo-java/branches/sdo-1.1-incubating/impl/src/test/java/org/apache/tuscany/sdo/test/AnyTypeTest.java
@@ -0,0 +1,112 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.tuscany.sdo.test;
+
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URL;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.api.XMLStreamHelper;
+import org.apache.tuscany.sdo.api.SDOUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XSDHelper;
+
+public class AnyTypeTest extends TestCase {
+ private static TypeHelper typeHelper;
+ private static DataFactory dataFactory;
+ private static XMLStreamHelper streamHelper;
+ private static XSDHelper xsdHelper;
+
+ private static final String TEST_MODEL = "/anytype.xsd";
+ private static final String TEST_NAMESPACE = "http://www.example.com/anytype";
+
+ public void testAnySimpleType() throws Exception {
+ final Property property = typeHelper.getOpenContentProperty(TEST_NAMESPACE, "globalElement");
+ final Type propertyType = property.getType();
+
+ DataObject dataObject = dataFactory.create(TEST_NAMESPACE, "Person");
+ dataObject.set("firstName", "Fuhwei");
+
+ DataObject rootObject = dataFactory.create(propertyType);
+ rootObject.set("anyTypeElement", dataObject);
+
+ dataObject = dataFactory.create(TEST_NAMESPACE, "Person");
+ dataObject.set("firstName", "Mindy");
+ rootObject.set("personElement", dataObject);
+
+ // XMLStreamHelper.saveObject has a problem to serialize the any type
+ final XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
+ final StringWriter writer = new StringWriter();
+ final XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer);
+ streamHelper.saveObject(rootObject, streamWriter);
+ streamWriter.flush();
+ // System.out.println(writer.toString());
+
+ final XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ final StringReader reader = new StringReader(writer.toString());
+ final XMLStreamReader streamReader = inputFactory.createXMLStreamReader(reader);
+ final XMLDocument doc = streamHelper.load(streamReader);
+ rootObject = doc.getRootObject();
+ DataObject testObject = rootObject.getDataObject("anyTypeElement");
+ // System.out.println("anyTypeElement dataobject: " + testObject);
+ testObject = rootObject.getDataObject("personElement");
+ // System.out.println("personElement dataobject: " + testObject);
+ }
+
+ public void testAbstractTypeFails() {
+ try {
+ final DataObject abstractObj = dataFactory.create("commonj.sdo","DataObject");
+ assertTrue("Should not succeed", false);
+ }
+ catch ( final IllegalArgumentException e) {
+ // expected result
+ }
+ }
+
+ protected void setUp() throws Exception {
+ final HelperContext hc = SDOUtil.createHelperContext();
+ typeHelper = hc.getTypeHelper();
+ dataFactory = hc.getDataFactory();
+ xsdHelper = hc.getXSDHelper();
+ streamHelper = SDOUtil.createXMLStreamHelper(hc);
+
+ // Populate the meta data for the test (Stock Quote) model
+ final URL url = getClass().getResource(TEST_MODEL);
+ final InputStream inputStream = url.openStream();
+ xsdHelper.define(inputStream, url.toString());
+ inputStream.close();
+ }
+
+}