Author: lresende
Date: Tue Mar 4 15:16:35 2008
New Revision: 633702
URL: http://svn.apache.org/viewvc?rev=633702&view=rev
Log:
TUSCANY-2057 - Added testcase to check properly writting the contribution
metadata document and fixed xmlOutputFactory to properly repair name spaces by
using property : XMLOutputFactory.IS_REPAIRING_NAMESPACES
Modified:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java
Modified:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java?rev=633702&r1=633701&r2=633702&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java
Tue Mar 4 15:16:35 2008
@@ -20,9 +20,13 @@
package org.apache.tuscany.sca.contribution.xml;
import java.io.StringReader;
+import java.io.StringWriter;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
import junit.framework.TestCase;
@@ -42,27 +46,31 @@
public class ContributionMetadataProcessorTestCase extends TestCase {
private static final String VALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\"
xmlns:ns=\"http://ns\">"
+ "<deployable composite=\"ns:Composite1\"/>"
+ "<deployable composite=\"ns:Composite2\"/>"
+ "</contribution>";
private static final String INVALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\"
xmlns:ns=\"http://ns\">"
+ "<deployable composite=\"ns:Composite1\"/>"
+ "<deployable/>"
+ "</contribution>";
- private XMLInputFactory xmlFactory;
+
+ private XMLInputFactory xmlInputFactory;
+ private XMLOutputFactory xmlOutputFactory;
@Override
protected void setUp() throws Exception {
- xmlFactory = XMLInputFactory.newInstance();
+ xmlInputFactory = XMLInputFactory.newInstance();
+ xmlOutputFactory = XMLOutputFactory.newInstance();
+ xmlOutputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES,
true);
}
public void testRead() throws Exception {
- XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
StringReader(VALID_XML));
+ XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(new
StringReader(VALID_XML));
AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
ContributionFactory contributionFactory = new
DefaultContributionFactory();
@@ -76,7 +84,7 @@
}
public void testReadInvalid() throws Exception {
- XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
StringReader(INVALID_XML));
+ XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(new
StringReader(INVALID_XML));
AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
ContributionFactory contributionFactory = new
DefaultContributionFactory();
ContributionMetadataProcessor processor =
@@ -90,4 +98,42 @@
assertTrue(true);
}
}
+
+ public void testWrite() throws Exception {
+ XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(new
StringReader(VALID_XML));
+
+ //read the original contribution metadata file
+ AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
+ ContributionFactory contributionFactory = new
DefaultContributionFactory();
+ ContributionMetadataProcessor processor =
+ new ContributionMetadataProcessor(assemblyFactory,
contributionFactory, null);
+ Contribution contribution = contributionFactory.createContribution();
+ contribution.setModelResolver(new TestModelResolver(contribution,
null));
+ contribution = processor.read(reader);
+
+ validateContribution(contribution);
+
+ //write the contribution metadata contents
+ StringWriter stringWriter = new StringWriter();
+ XMLStreamWriter writer =
xmlOutputFactory.createXMLStreamWriter(stringWriter);
+ processor.write(contribution, writer);
+ stringWriter.close();
+
+ reader = xmlInputFactory.createXMLStreamReader(new
StringReader(stringWriter.toString()));
+ contribution = processor.read(reader);
+
+ validateContribution(contribution);
+ }
+
+ public void validateContribution(Contribution contribution) {
+ QName deployable;
+
+ assertNotNull(contribution);
+ assertEquals(2, contribution.getDeployables().size());
+ deployable = new QName("http://ns", "Composite1");
+ assertEquals(deployable,
contribution.getDeployables().get(0).getName());
+ deployable = new QName("http://ns", "Composite2");
+ assertEquals(deployable,
contribution.getDeployables().get(1).getName());
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]