Author: hiranya
Date: Fri Oct 8 00:10:14 2010
New Revision: 1005675
URL: http://svn.apache.org/viewvc?rev=1005675&view=rev
Log:
Fixing SYNAPSE-696 (endpoint serialization improvements and tests)
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/MessageStoreSerializationTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/SimpleMapTest.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -48,12 +48,8 @@ public class AddressEndpointSerializer e
// serialize the properties
serializeProperties(addressEndpoint, endpointElement);
-
- String name = addressEndpoint.getName();
- boolean anon = addressEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ //serialize attributes
+ serializeCommonAttributes(endpoint,endpointElement);
EndpointDefinition epAddress = addressEndpoint.getDefinition();
OMElement addressElement = serializeEndpointDefinition(epAddress);
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -44,12 +44,9 @@ public class DefaultEndpointSerializer e
= fac.createOMElement("endpoint",
SynapseConstants.SYNAPSE_OMNAMESPACE);
DefaultEndpoint defaultEndpoint = (DefaultEndpoint) endpoint;
- String name = defaultEndpoint.getName();
- boolean anon = defaultEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(defaultEndpoint,endpointElement);
+
EndpointDefinition epAddress = defaultEndpoint.getDefinition();
OMElement defaultElement = serializeEndpointDefinition(epAddress);
endpointElement.addChild(defaultElement);
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -62,11 +62,8 @@ public class DynamicLoadbalanceEndpointS
// serialize the parameters
serializeProperties(dynamicLoadbalanceEndpoint, endpointElement);
- String name = dynamicLoadbalanceEndpoint.getName();
- boolean anon = dynamicLoadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
Dispatcher dispatcher = dynamicLoadbalanceEndpoint.getDispatcher();
if (dispatcher != null) {
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -102,7 +102,7 @@ public abstract class EndpointSerializer
*/
protected void serializeCommonEndpointProperties(
EndpointDefinition endpointDefinition, OMElement element) {
-
+
if (endpointDefinition.getTraceState() == SynapseConstants.TRACING_ON)
{
element.addAttribute(fac.createOMAttribute(XMLConfigConstants.TRACE_ATTRIB_NAME,
null, XMLConfigConstants.TRACE_ENABLE));
@@ -121,7 +121,7 @@ public abstract class EndpointSerializer
XMLConfigConstants.STATISTICS_ATTRIB_NAME, null,
XMLConfigConstants.STATISTICS_ENABLE));
}
-
+
if (endpointDefinition.isUseSwa()) {
element.addAttribute(fac.createOMAttribute("optimize", null,
"swa"));
} else if (endpointDefinition.isUseMTOM()) {
@@ -335,6 +335,23 @@ public abstract class EndpointSerializer
endpoint.getClass().toString() + " is not defined.");
}
+ protected void serializeCommonAttributes(Endpoint endpoint, OMElement
element) {
+
+ String name = endpoint.getName();
+ boolean anon = ((AbstractEndpoint) endpoint).isAnonymous();
+ if (name != null && !anon) {
+ element.addAttribute("name", name, null);
+ }
+
+ //serialize the message stores
+ String messageStore = endpoint.getOnFaultMessageStore();
+ if (messageStore != null) {
+ element.addAttribute(EndpointFactory.ON_FAULT_Q.getLocalPart(),
+ messageStore, null);
+ }
+ }
+
+
protected void serializeProperties(PropertyInclude endpoint, OMElement
element) {
Collection<MediatorProperty> properties = endpoint.getProperties();
if (properties != null && properties.size() > 0) {
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -51,11 +51,8 @@ public class FailoverEndpointSerializer
= fac.createOMElement("failover",
SynapseConstants.SYNAPSE_OMNAMESPACE);
endpointElement.addChild(failoverElement);
- String name = failoverEndpoint.getName();
- boolean anon = failoverEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
for (Endpoint childEndpoint : failoverEndpoint.getChildren()) {
failoverElement.addChild(EndpointSerializer.getElementFromEndpoint(childEndpoint));
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -49,11 +49,7 @@ public class LoadbalanceEndpointSerializ
// serialize the parameters
serializeProperties(loadbalanceEndpoint, endpointElement);
- String name = loadbalanceEndpoint.getName();
- boolean anon = loadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
OMElement loadbalanceElement
= fac.createOMElement("loadbalance",
SynapseConstants.SYNAPSE_OMNAMESPACE);
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -52,11 +52,7 @@ public class SALoadbalanceEndpointSerial
// serialize the parameters
serializeProperties(loadbalanceEndpoint, endpointElement);
- String name = loadbalanceEndpoint.getName();
- boolean anon = loadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
Dispatcher dispatcher = loadbalanceEndpoint.getDispatcher();
if (dispatcher != null) {
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java?rev=1005675&r1=1005674&r2=1005675&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
Fri Oct 8 00:10:14 2010
@@ -48,11 +48,8 @@ public class WSDLEndpointSerializer exte
// serialize the parameters
serializeProperties(wsdlEndpoint, endpointElement);
- String name = wsdlEndpoint.getName();
- boolean anon = wsdlEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
OMElement wsdlElement = fac.createOMElement("wsdl",
SynapseConstants.SYNAPSE_OMNAMESPACE);
String serviceName = wsdlEndpoint.getServiceName();
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/MessageStoreSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/MessageStoreSerializationTest.java?rev=1005675&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/MessageStoreSerializationTest.java
(added)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/MessageStoreSerializationTest.java
Fri Oct 8 00:10:14 2010
@@ -0,0 +1,66 @@
+/*
+ * 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.synapse.config.xml;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.message.store.MessageStore;
+
+import java.util.Properties;
+
+public class MessageStoreSerializationTest extends AbstractTestCase {
+
+ MessageStoreFactory messageStoreFactory;
+
+ MessageStoreSerializer messageStoreSerializer;
+
+ public MessageStoreSerializationTest() {
+ super(MessageStoreSerializationTest.class.getName());
+ this.messageStoreSerializer = new MessageStoreSerializer();
+ }
+
+ public void testMessageStoreSerialization() throws Exception {
+ String messageStoreConfiguration = "<syn:messageStore xmlns:syn=\"" +
+ "http://synapse.apache.org/ns/2010/04/configuration\"" +
+ " name=\"foo\" sequence=\"seq1\" >" +
+ "<syn:redelivery>" +
+ "<syn:interval>1</syn:interval>" +
+ "<syn:maximumRedeliveries>5</syn:maximumRedeliveries>" +
+ "<syn:exponentialBackoff>true</syn:exponentialBackoff>" +
+ "<syn:backoffMutiplier>2</syn:backoffMutiplier>" +
+ "</syn:redelivery>" +
+ "</syn:messageStore>";
+
+ OMElement messageStoreElement =
createOMElement(messageStoreConfiguration);
+ MessageStore messageStore =
MessageStoreFactory.createMessageStore(messageStoreElement,
+ new Properties());
+ OMElement serializedElement =
MessageStoreSerializer.serializeMessageStore(null,
+ messageStore);
+
+ try {
+ assertTrue(compare(messageStoreElement, serializedElement));
+ } catch (Exception e) {
+ fail("Exception in test.");
+ }
+
+ }
+
+
+
+}
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java?rev=1005675&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
(added)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
Fri Oct 8 00:10:14 2010
@@ -0,0 +1,62 @@
+/*
+ * 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.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.util.AXIOMUtil;
+import org.apache.synapse.config.xml.AbstractTestCase;
+import org.apache.synapse.endpoints.AddressEndpoint;
+import org.apache.synapse.endpoints.Endpoint;
+
+import javax.xml.stream.XMLStreamException;
+import java.util.Properties;
+
+public class AddressEndpointSerializationTest extends AbstractTestCase {
+
+ public void testAddressEndpointScenarioOne() throws Exception {
+ String inputXML = "<endpoint
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<address
uri=\"http://localhost:9000/services/SimpleStockQuoteService\" />" +
+ "</endpoint>" ;
+
+ OMElement inputElement = createOMElement(inputXML);
+ AddressEndpoint endpoint = (AddressEndpoint)
AddressEndpointFactory.getEndpointFromElement(
+ inputElement,true,null);
+
+ OMElement serializedOut =
AddressEndpointSerializer.getElementFromEndpoint(endpoint);
+ assertTrue(compare(serializedOut,inputElement));
+
+ }
+
+ public void testAddressEndpointScenarioTwo() throws Exception {
+ String inputXML =
+ "<endpoint name=\"testEndpoint\" onFault=\"foo\" xmlns=" +
+
"\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<address
uri=\"http://localhost:9000/services/SimpleStockQuoteService\" >" +
+ "</address>"+
+ "</endpoint>" ;
+
+ OMElement inputElement = createOMElement(inputXML);
+ AddressEndpoint endpoint = (AddressEndpoint)
AddressEndpointFactory.getEndpointFromElement(
+ inputElement,false,null);
+ OMElement serializedOut =
AddressEndpointSerializer.getElementFromEndpoint(endpoint);
+
+ assertTrue(compare(serializedOut,inputElement));
+ }
+}
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java?rev=1005675&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
(added)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
Fri Oct 8 00:10:14 2010
@@ -0,0 +1,57 @@
+/*
+ * 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.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.config.xml.AbstractTestCase;
+import org.apache.synapse.endpoints.Endpoint;
+
+public class LoadBalanceEndpointSerializationTest extends AbstractTestCase {
+
+ public void testLoadBalanceEndpointScenarioOne()throws Exception {
+ String inputXml = "<endpoint
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<session type=\"simpleClientSession\"/>" +
+ "<loadbalance
algorithm=\"org.apache.synapse.endpoints.algorithms.RoundRobin\">" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9001/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9002/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9003/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "</loadbalance>" +
+ "</endpoint>";
+
+ OMElement inputElement = createOMElement(inputXml);
+ Endpoint endpoint = LoadbalanceEndpointFactory.getEndpointFromElement(
+ inputElement,true,null);
+ OMElement serializedOut =
LoadbalanceEndpointSerializer.getElementFromEndpoint(endpoint);
+
+ assertTrue(compare(serializedOut,inputElement));
+ }
+}
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/SimpleMapTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/SimpleMapTest.java?rev=1005675&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/SimpleMapTest.java
(added)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/SimpleMapTest.java
Fri Oct 8 00:10:14 2010
@@ -0,0 +1,75 @@
+/*
+ * 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.synapse.util;
+
+import junit.framework.TestCase;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.util.AXIOMUtil;
+
+import java.util.Map;
+
+public class SimpleMapTest extends TestCase {
+
+ public void testConstructionFromXML() throws Exception {
+ String xml = "<map xmlns=\"http://ws.apache.org/commons/ns/payload\">"
+
+ "<entry name=\"key1\" type=\"int\">525</entry>" +
+ "<entry name=\"key2\" type=\"char\">d</entry>" +
+ "<entry name=\"key3\" type=\"double\">23.45</entry>" +
+ "<entry name=\"key4\" type=\"float\">-3.45</entry>" +
+ "<entry name=\"key5\"
type=\"long\">1234567890</entry>" +
+ "<entry name=\"key6\" type=\"short\">123</entry>" +
+ "<entry name=\"key7\" type=\"byte\">a</entry>" +
+ "<entry name=\"key8\" type=\"string\">hello
world</entry>" +
+ "</map>";
+ OMElement mapElement = AXIOMUtil.stringToOM(xml);
+
+ SimpleMap map = new SimpleMapImpl(mapElement);
+ assertEquals(525, map.getInt("key1"));
+ assertEquals('d', map.getChar("key2"));
+ assertEquals(23.45D, map.getDouble("key3"));
+ assertEquals(-3.45F, map.getFloat("key4"));
+ assertEquals(1234567890L, map.getLong("key5"));
+ assertEquals(123, map.getShort("key6"));
+ assertEquals("a".getBytes()[0], map.getByte("key7"));
+ assertEquals("hello world", map.getString("key8"));
+
+ map.putString("key1", "test");
+ assertEquals("test", map.getString("key1"));
+ }
+
+ public void testSerialization() {
+ SimpleMapImpl map = new SimpleMapImpl();
+ map.putInt("key1", 123);
+ map.putDouble("key2", 23.45D);
+ map.putString("key3", "hello");
+ map.putByte("key4", "s".getBytes()[0]);
+
+ OMElement mapElement = map.getOMElement();
+ System.out.println(mapElement.toString());
+
+ SimpleMap copy = new SimpleMapImpl(mapElement);
+ assertEquals(map.size(), copy.size());
+ for (Object entryObj : map.entrySet()) {
+ Map.Entry entry = (Map.Entry) entryObj;
+ assertTrue(copy.containsKey(entry.getKey()) &&
entry.getValue().equals(
+ map.get(entry.getKey())));
+ }
+ }
+}