You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/06/13 11:48:27 UTC

svn commit: r667442 - in /synapse/trunk/java/modules/transports: ./ src/test/java/org/apache/synapse/transport/ src/test/java/org/apache/synapse/transport/jms/

Author: veithen
Date: Fri Jun 13 02:48:27 2008
New Revision: 667442

URL: http://svn.apache.org/viewvc?rev=667442&view=rev
Log:
Added TransportListenerTestTemplate implementation for the JMS transport (with three tests temporarily disabled because of SYNAPSE-304).

Added:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
Modified:
    synapse/trunk/java/modules/transports/pom.xml
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java

Modified: synapse/trunk/java/modules/transports/pom.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/pom.xml?rev=667442&r1=667441&r2=667442&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/pom.xml (original)
+++ synapse/trunk/java/modules/transports/pom.xml Fri Jun 13 02:48:27 2008
@@ -110,7 +110,18 @@
     </profiles>
 
     <dependencies>
-
+        <dependency>
+            <groupId>org.mockejb</groupId>
+            <artifactId>mockejb</artifactId>
+            <version>0.6-beta2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.mockrunner</groupId>
+            <artifactId>mockrunner</artifactId>
+            <version>0.3.1</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <properties>

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java?rev=667442&r1=667441&r2=667442&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java Fri Jun 13 02:48:27 2008
@@ -190,8 +190,9 @@
      * Create a TransportInDescription for the transport under test.
      * 
      * @return the transport description
+     * @throws Exception
      */
-    protected abstract TransportInDescription createTransportInDescription();
+    protected abstract TransportInDescription createTransportInDescription() throws Exception;
     
     /**
      * Carry out initialization before server startup. This method is called

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java?rev=667442&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java Fri Jun 13 02:48:27 2008
@@ -0,0 +1,105 @@
+/*
+ *  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.transport.jms;
+
+import java.util.List;
+
+import javax.jms.BytesMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.jms.Session;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.synapse.transport.TransportListenerTestTemplate;
+import org.apache.synapse.transport.base.BaseConstants;
+import org.mockejb.jndi.MockContextFactory;
+
+import com.mockrunner.jms.ConfigurationManager;
+import com.mockrunner.jms.DestinationManager;
+import com.mockrunner.mock.jms.MockQueueConnectionFactory;
+
+public class JMSListenerTest extends TransportListenerTestTemplate {
+    private final OMFactory factory = OMAbstractFactory.getOMFactory();
+    
+    private OMElement createParameterElement(String name, String value) {
+        OMElement element = factory.createOMElement(new QName("parameter"));
+        element.addAttribute("name", name, null);
+        if (value != null) {
+            element.setText(value);
+        }
+        return element;
+    }
+    
+    @Override
+    protected TransportInDescription createTransportInDescription() throws Exception {
+        MockContextFactory.setAsInitial();
+        Context context = new InitialContext();
+        DestinationManager destinationManager = new DestinationManager();
+        ConfigurationManager configurationManager = new ConfigurationManager();
+        context.bind("QueueConnectionFactory", new MockQueueConnectionFactory(destinationManager, configurationManager));
+        context.bind("TestService", destinationManager.createQueue("TestService"));
+        
+        TransportInDescription trpInDesc = new TransportInDescription(JMSListener.TRANSPORT_NAME);
+        OMElement element = createParameterElement(JMSConstants.DEFAULT_CONFAC_NAME, null);
+        element.addChild(createParameterElement("java.naming.factory.initial", MockContextFactory.class.getName()));
+        element.addChild(createParameterElement("transport.jms.ConnectionFactoryJNDIName", "QueueConnectionFactory"));
+        element.addChild(createParameterElement("transport.jms.ConnectionFactoryType", "queue"));
+        trpInDesc.addParameter(new Parameter(JMSConstants.DEFAULT_CONFAC_NAME, element));
+        trpInDesc.setReceiver(new JMSListener());
+        return trpInDesc;
+    }
+
+    @Override
+    protected List<Parameter> getServiceParameters(String contentType) throws Exception {
+        return null;
+    }
+
+    @Override
+    protected void sendMessage(String endpointReference,
+                               String contentType,
+                               byte[] content) throws Exception {
+        Context context = new InitialContext();
+        QueueConnectionFactory connFactory
+            = (QueueConnectionFactory)context.lookup("QueueConnectionFactory");
+        Queue queue = (Queue)context.lookup("TestService");
+        QueueConnection connection = connFactory.createQueueConnection();
+        QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
+        QueueSender sender = session.createSender(queue);
+        BytesMessage message = session.createBytesMessage();
+        message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+        message.writeBytes(content);
+        sender.send(message);
+    }
+
+    // TODO: these tests are temporarily disabled because of SYNAPSE-304
+    @Override public void testTextPlainASCII() {}
+    @Override public void testTextPlainLatin1() {}
+    @Override public void testTextPlainUTF8() {}
+}