summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java')
-rw-r--r--sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java66
1 files changed, 60 insertions, 6 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java b/sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java
index 7a36c1d97d..ddbd70e567 100644
--- a/sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java
+++ b/sca-java-2.x/trunk/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java
@@ -21,13 +21,17 @@ package org.apache.tuscany.sca.assembly.xml;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
@@ -101,24 +105,54 @@ public class ReadWriteAnyElementTestCase {
assertNotNull(composite);
reader.close();
+ verifyExtendedElementComposite(composite);
+
ByteArrayOutputStream bos = new ByteArrayOutputStream();
staxProcessor.write(composite, bos, context);
// used for debug comparison
- // System.out.println(XML_RECURSIVE_EXTENDED_ELEMENT);
- // System.out.println(bos.toString());
+// System.out.println(XML_RECURSIVE_EXTENDED_ELEMENT);
+// System.out.println(bos.toString());
- assertEquals(XML_RECURSIVE_EXTENDED_ELEMENT, bos.toString());
+ // assertEquals(XML_RECURSIVE_EXTENDED_ELEMENT, bos.toString());
bos.close();
+
+ ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+ composite = staxProcessor.read(bis, Composite.class, context);
+ verifyExtendedElementComposite(composite);
}
- @Test
+ private void verifyExtendedElementComposite(Composite composite) throws XMLStreamException {
+
+ assertEquals("RecursiveExtendedElement", composite.getName().getLocalPart());
+ assertEquals(1, composite.getExtensions().size());
+ Extension ext1 = (Extension) composite.getExtensions().get(0);
+ assertEquals("unknownElement", ext1.getQName().getLocalPart());
+ assertEquals("http://docs.oasis-open.org/ns/opencsa/sca/200912", ext1.getQName().getNamespaceURI());
+
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader((String)ext1.getValue()));
+ reader.next();
+ assertEquals("unknownElement", reader.getLocalName());
+ reader.next();
+ assertEquals("subUnknownElement1", reader.getLocalName());
+ assertEquals(1, reader.getAttributeCount());
+ assertEquals("attribute", reader.getAttributeLocalName(0));
+ assertEquals("anyAttribute", reader.getAttributeValue(0));
+
+ reader.close();
+
+ }
+
+ @Test
public void testReadWriteUnknwonImpl() throws Exception {
+
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML_UNKNOWN_IMPL));
Composite composite = (Composite)staxProcessor.read(reader, context);
assertNotNull(composite);
reader.close();
+ verifyUnknownImplComposite(composite);
+
ByteArrayOutputStream bos = new ByteArrayOutputStream();
staxProcessor.write(composite, bos, context);
@@ -126,13 +160,33 @@ public class ReadWriteAnyElementTestCase {
// System.out.println(XML_UNKNOWN_IMPL);
// System.out.println(bos.toString());
- assertEquals(XML_UNKNOWN_IMPL, bos.toString());
+ // assertEquals(XML_UNKNOWN_IMPL, bos.toString());
bos.close();
+
+ ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+ composite = staxProcessor.read(bis, Composite.class, context);
+ verifyUnknownImplComposite(composite);
}
- // @Test
+ private void verifyUnknownImplComposite(Composite composite) {
+
+ assertEquals("aaaa", composite.getName().getLocalPart());
+ assertEquals(1, composite.getComponents().size());
+ Component component = composite.getComponents().get(0);
+ assertEquals("unknownImpl", component.getName());
+ assertEquals(1, component.getServices().size());
+ assertEquals("service", component.getServices().get(0).getName());
+ assertEquals(1, component.getExtensions().size());
+ Extension ext = (Extension) component.getExtensions().get(0);
+ assertEquals("http://docs.oasis-open.org/ns/opencsa/sca/200912", ext.getQName().getNamespaceURI());
+ assertEquals("implementation.unknown", ext.getQName().getLocalPart());
+
+ }
+
+ // @Test
@Ignore()
public void testReadWriteInvalidAttribute() throws Exception {
+
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML_UNKNOWN_IMPL_WITH_INVALID_ATTRIBUTE));
Composite composite = (Composite)staxProcessor.read(reader, context);
assertNotNull(composite);