diff options
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.java | 66 |
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); |