You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2010/05/01 11:38:36 UTC
svn commit: r939961 -
/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java
Author: hiranya
Date: Sat May 1 09:38:35 2010
New Revision: 939961
URL: http://svn.apache.org/viewvc?rev=939961&view=rev
Log:
Updated the local entry config test cases. Related to SYNAPSE-624.
Modified:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java
Modified: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java?rev=939961&r1=939960&r2=939961&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java (original)
+++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/LocalEntryConfigurationTest.java Sat May 1 09:38:35 2010
@@ -20,6 +20,7 @@
package org.apache.synapse.config.xml;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.util.AXIOMUtil;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.synapse.config.Entry;
@@ -30,118 +31,224 @@ import java.io.StringReader;
public class LocalEntryConfigurationTest extends AbstractTestCase {
+ private String key = "myEntry";
+
public void testSimpleTextEntry() {
- String text = "Apache Synapse";
+ String text = "Apache Synapse - 2.0";
String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
- "key=\"foo\"><![CDATA[" + text + "]]></localEntry>";
+ "key=\"" + key + "\">" + text + "</localEntry>";
+ String serializedSrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
+ "key=\"" + key + "\"><![CDATA[" + text + "]]></localEntry>";
+
try {
- OMElement source = parseEntrySource(entrySrc);
- Entry entry = EntryFactory.createEntry(source);
- assertEquals(text, entry.getValue());
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_TEXT, entry.getType());
+ assertEquals(text, (String) entry.getValue());
OMElement serialization = EntrySerializer.serializeEntry(entry, null);
- assertTrue(compare(source, serialization));
+ OMElement expectedSerialization = parseWithCDATA(serializedSrc);
+ assertTrue(compare(expectedSerialization, serialization));
} catch (XMLStreamException e) {
- fail("Simple Text Entry test failed: " + e.getMessage());
+ fail("Error while parsing entry definition: " + e.getMessage());
}
}
- public void testSimpleXMLEntry() {
+ public void testTextEntryWithMarkup() {
+ String text = "mc.setPayloadXML(<xml>data</xml>);";
String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
- "key=\"foo\"><project><id>001</id><name>Synapse</name></project></localEntry>";
+ "key=\"" + key + "\"><![CDATA[" + text + "]]></localEntry>";
+
try {
- OMElement source = parseEntrySource(entrySrc);
- OMElement original = source.cloneOMElement();
- Entry entry = EntryFactory.createEntry(source);
- assertTrue(compare(original.getFirstElement(), (OMElement) entry.getValue()));
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_TEXT, entry.getType());
+ assertEquals(text, (String) entry.getValue());
OMElement serialization = EntrySerializer.serializeEntry(entry, null);
- assertTrue(compare(original, serialization));
+ OMElement expectedSerialization = parseWithCDATA(entrySrc);
+ assertTrue(compare(expectedSerialization, serialization));
} catch (XMLStreamException e) {
- fail("Simple XML Entry test failed: " + e.getMessage());
+ fail("Error while parsing entry definition: " + e.getMessage());
}
}
- // TODO: Fix SYNAPSE-624
- /*public void testLargeTextEntry() {
- String largeText = "Apache Synapse is designed to be a simple, lightweight and high " +
- "performance Enterprise Service Bus (ESB) from Apache. Based on a small " +
- "asynchronous core, Apache Synapse has excellent support for XML and Web " +
- "services - as well as binary and text formats. The Synapse engine is configured " +
- "with a simple XML format and comes with a set of ready-to-use transports and " +
- "mediators. We recommend you start by reading the QuickStart and then trying out " +
- "the samples. Synapse is made available under the Apache Software License 2.0. " +
- "For more detailsplease visit http://synapse.apache.org";
+ public void testTextEntryWithNestedCDATA() {
+ String actualText = "mc.setPayloadXML(<xml><![CDATA[data]]></xml>);";
+ String escapedText = "mc.setPayloadXML(<xml><![CDATA[data]]]]><![CDATA[></xml>);";
+ String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
+ "key=\"" + key + "\"><![CDATA[" + escapedText + "]]></localEntry>";
+
+ try {
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_TEXT, entry.getType());
+ assertEquals(actualText, (String) entry.getValue());
+
+ OMElement expectedSerialization = parseWithCDATA(entrySrc);
+ OMElement serialization = EntrySerializer.serializeEntry(entry, null);
+ assertTrue(compare(expectedSerialization, serialization));
+
+ } catch (XMLStreamException e) {
+ fail("Error while parsing entry definition: " + e.getMessage());
+ }
+ }
+ public void testSimpleXMLEntry() {
+ String xml = "<m:project xmlns:m=\"http://testing.synapse.apache.org\"><m:id>001</m:id>" +
+ "<m:name>Synapse</m:name></m:project>";
String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
- "key=\"foo\"><![CDATA[" + largeText + "]]></localEntry>";
+ "key=\"" + key + "\">" + xml + "</localEntry>";
+
try {
- OMElement source = parseEntrySource(entrySrc);
- Entry entry = EntryFactory.createEntry(source);
- assertEquals(largeText, entry.getValue());
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ OMElement expectedSerialization = elem.cloneOMElement();
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_XML, entry.getType());
+
+ OMElement valueElem = AXIOMUtil.stringToOM(xml);
+ assertTrue(compare(valueElem, (OMElement) entry.getValue()));
+
+ OMElement serialization = EntrySerializer.serializeEntry(entry, null);
+ assertTrue(compare(expectedSerialization, serialization));
} catch (XMLStreamException e) {
- fail("Simple Text Entry test failed: " + e.getMessage());
+ fail("Error while parsing entry definition: " + e.getMessage());
}
- }*/
+ }
- public void testLargeXMLEntry() {
+ public void testXMLEntryWithCDATA() {
+ String xml = "<m:project xmlns:m=\"http://testing.synapse.apache.org\">" +
+ "<![CDATA[<xml>data</xml>]]></m:project>";
+ String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
+ "key=\"" + key + "\">" + xml + "</localEntry>";
+
+ try {
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ OMElement expectedSerialization = elem.cloneOMElement();
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_XML, entry.getType());
- String entrySrc =
- "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" key=\"foo\">" +
- "<wsdl:definitions name=\"Imported\"\n" +
- " targetNamespace=\"http://www.example.com/imported\"\n" +
- " xmlns:tns=\"http://www.example.com/imported\"\n" +
- " xmlns:s=\"http://www.example.com/schema\"\n" +
- " xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\"\n" +
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
+ OMElement valueElem = AXIOMUtil.stringToOM(xml);
+ assertTrue(compare(valueElem, (OMElement) entry.getValue()));
+
+ OMElement serialization = EntrySerializer.serializeEntry(entry, null);
+ assertTrue(compare(expectedSerialization, serialization));
+ } catch (XMLStreamException e) {
+ fail("Error while parsing entry definition: " + e.getMessage());
+ }
+ }
+
+ public void testLargeXMLEntry() {
+ String xml = "<wsdl:definitions xmlns:axis2=\"http://ws.apache.org/axis2\" xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\" xmlns:ns0=\"http://ws.apache.org/axis2/xsd\" xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\" xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\" xmlns:ns1=\"http://org.apache.axis2/xsd\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" targetNamespace=\"http://ws.apache.org/axis2\">\n" +
+ " <wsdl:documentation>\n" +
+ " New web service to test esb\n" +
+ " </wsdl:documentation>\n" +
" <wsdl:types>\n" +
- " <xsd:schema targetNamespace=\"http://www.example.com/imported\">\n" +
- " <xsd:import namespace=\"http://www.example.com/schema\" schemaLocation=\"imported.xsd\"/>\n" +
- " <xsd:element name=\"getTestData\">\n" +
- " <xsd:complexType>\n" +
- " <xsd:sequence>\n" +
- " <xsd:element name=\"test\" type=\"s:SomeType\" minOccurs=\"1\" maxOccurs=\"1\"/>\n" +
- " </xsd:sequence>\n" +
- " </xsd:complexType>\n" +
- " </xsd:element>\n" +
- " <xsd:element name=\"getTestDataResponse\">\n" +
- " <xsd:complexType>\n" +
- " <xsd:sequence>\n" +
- " <xsd:element name=\"test\" type=\"s:SomeType\" minOccurs=\"1\" maxOccurs=\"1\"/>\n" +
- " </xsd:sequence>\n" +
- " </xsd:complexType>\n" +
- " </xsd:element>\n" +
- " </xsd:schema>\n" +
+ " <xs:schema xmlns:ns=\"http://ws.apache.org/axis2/xsd\" attributeFormDefault=\"qualified\" elementFormDefault=\"qualified\" targetNamespace=\"http://ws.apache.org/axis2/xsd\">\n" +
+ " <xs:element name=\"multiply\">\n" +
+ " <xs:complexType>\n" +
+ " <xs:sequence>\n" +
+ " <xs:element name=\"x\" nillable=\"true\" type=\"xs:double\" />\n" +
+ " <xs:element name=\"y\" nillable=\"true\" type=\"xs:double\" />\n" +
+ " </xs:sequence>\n" +
+ " </xs:complexType>\n" +
+ " </xs:element>\n" +
+ " <xs:element name=\"multiplyResponse\">\n" +
+ " <xs:complexType>\n" +
+ " <xs:sequence>\n" +
+ " <xs:element name=\"return\" nillable=\"true\" type=\"xs:double\" />\n" +
+ " </xs:sequence>\n" +
+ " </xs:complexType>\n" +
+ " </xs:element>\n" +
+ " </xs:schema>\n" +
" </wsdl:types>\n" +
- " <wsdl:message name=\"getTestDataRequest\">\n" +
- " <wsdl:part name=\"parameters\" element=\"tns:getTestData\"/>\n" +
+ " <wsdl:message name=\"multiplyMessage\">\n" +
+ " <wsdl:part name=\"part1\" element=\"ns0:multiply\" />\n" +
" </wsdl:message>\n" +
- " <wsdl:message name=\"getTestDataResponse\">\n" +
- " <wsdl:part name=\"parameters\" element=\"tns:getTestDataResponse\"/>\n" +
+ " <wsdl:message name=\"multiplyResponse\">\n" +
+ " <wsdl:part name=\"part1\" element=\"ns0:multiplyResponse\" />\n" +
" </wsdl:message>\n" +
- " <wsdl:portType name=\"Test\">\n" +
- " <wsdl:operation name=\"getTestData\">\n" +
- " <wsdl:input message=\"tns:getTestDataRequest\" name=\"getTestData\"/>\n" +
- " <wsdl:output message=\"tns:getTestDataResponse\" name=\"getTestDataResponse\"/>\n" +
+ " <wsdl:portType name=\"esbservicePortType\">\n" +
+ " <wsdl:operation name=\"multiply\">\n" +
+ " <wsdl:input xmlns:wsaw=\"http://www.w3.org/2006/05/addressing/wsdl\" message=\"axis2:multiplyMessage\" wsaw:Action=\"urn:multiply\" />\n" +
+ " <wsdl:output message=\"axis2:multiplyResponse\" />\n" +
" </wsdl:operation>\n" +
" </wsdl:portType>\n" +
- "</wsdl:definitions>" +
- "</localEntry>";
+ " <wsdl:binding name=\"esbserviceSOAP11Binding\" type=\"axis2:esbservicePortType\">\n" +
+ " <soap:binding transport=\"http://schemas.xmlsoap.org/soap/http\" style=\"document\" />\n" +
+ " <wsdl:operation name=\"multiply\">\n" +
+ " <soap:operation soapAction=\"urn:multiply\" style=\"document\" />\n" +
+ " <wsdl:input>\n" +
+ " <soap:body use=\"literal\" />\n" +
+ " </wsdl:input>\n" +
+ " <wsdl:output>\n" +
+ " <soap:body use=\"literal\" />\n" +
+ " </wsdl:output>\n" +
+ " </wsdl:operation>\n" +
+ " </wsdl:binding>\n" +
+ " <wsdl:binding name=\"esbserviceSOAP12Binding\" type=\"axis2:esbservicePortType\">\n" +
+ " <soap12:binding transport=\"http://schemas.xmlsoap.org/soap/http\" style=\"document\" />\n" +
+ " <wsdl:operation name=\"multiply\">\n" +
+ " <soap12:operation soapAction=\"urn:multiply\" style=\"document\" />\n" +
+ " <wsdl:input>\n" +
+ " <soap12:body use=\"literal\" />\n" +
+ " </wsdl:input>\n" +
+ " <wsdl:output>\n" +
+ " <soap12:body use=\"literal\" />\n" +
+ " </wsdl:output>\n" +
+ " </wsdl:operation>\n" +
+ " </wsdl:binding>\n" +
+ " <wsdl:binding name=\"esbserviceHttpBinding\" type=\"axis2:esbservicePortType\">\n" +
+ " <http:binding verb=\"POST\" />\n" +
+ " <wsdl:operation name=\"multiply\">\n" +
+ " <http:operation location=\"multiply\" />\n" +
+ " <wsdl:input>\n" +
+ " <mime:content type=\"text/xml\" />\n" +
+ " </wsdl:input>\n" +
+ " <wsdl:output>\n" +
+ " <mime:content type=\"text/xml\" />\n" +
+ " </wsdl:output>\n" +
+ " </wsdl:operation>\n" +
+ " </wsdl:binding>\n" +
+ " <wsdl:service name=\"esbservice\">\n" +
+ " <wsdl:port name=\"esbserviceSOAP11port_http\" binding=\"axis2:esbserviceSOAP11Binding\">\n" +
+ " <soap:address location=\"http://localhost:9001/services/Service1\" />\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port name=\"esbserviceSOAP12port_http\" binding=\"axis2:esbserviceSOAP12Binding\">\n" +
+ " <soap12:address location=\"http://localhost:9001/services/Service1\" />\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port name=\"esbserviceHttpport1\" binding=\"axis2:esbserviceHttpBinding\">\n" +
+ " <http:address location=\"http://localhost:9001/services/Service1\" />\n" +
+ " </wsdl:port>\n" +
+ " </wsdl:service>\n" +
+ "</wsdl:definitions>";
+
+ String entrySrc = "<localEntry xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\" " +
+ "key=\"" + key + "\">" + xml + "</localEntry>";
try {
- OMElement source = parseEntrySource(entrySrc);
- OMElement original = source.cloneOMElement();
- Entry entry = EntryFactory.createEntry(source);
- assertTrue(compare(original.getFirstElement(), (OMElement) entry.getValue()));
+ OMElement elem = AXIOMUtil.stringToOM(entrySrc);
+ OMElement expectedSerialization = elem.cloneOMElement();
+ Entry entry = EntryFactory.createEntry(elem);
+ assertEquals(key, entry.getKey());
+ assertEquals(Entry.INLINE_XML, entry.getType());
+
+ OMElement valueElem = AXIOMUtil.stringToOM(xml);
+ assertTrue(compare(valueElem, (OMElement) entry.getValue()));
OMElement serialization = EntrySerializer.serializeEntry(entry, null);
- assertTrue(compare(original, serialization));
+ assertTrue(compare(expectedSerialization, serialization));
} catch (XMLStreamException e) {
- fail("Large XML Entry test failed: " + e.getMessage());
+ fail("Error while parsing entry definition: " + e.getMessage());
}
}
- private OMElement parseEntrySource(String src) throws XMLStreamException {
+ private OMElement parseWithCDATA(String src) throws XMLStreamException {
StringReader strReader = new StringReader(src);
XMLInputFactory xmlInFac = XMLInputFactory.newInstance();
//Non-Coalescing parsing