Package org.activemq.itests

Source Code of org.activemq.itests.ResourceAdapterTest

/**
*
* Copyright 2004 Hiram Chirino
*
* Licensed 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.activemq.itests;

import java.rmi.RemoteException;
import java.util.HashSet;
import java.util.Hashtable;

import javax.ejb.CreateException;
import javax.jms.JMSException;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import junit.framework.TestCase;

import org.activemq.itest.ejb.JMSToolHome;
import org.activemq.itest.ejb.JMSTool;

/**
* @version $Revision: 1.1 $
*/
public class ResourceAdapterTest extends TestCase {

    private static final String JMSBEAN_JNDI = "org/activemq/itest/JMSToolBean";

    private static final String TEST_QUEUE = "TestQueue";

    private static final String TRANSFER_MDB_INPUT_QUEUE = "MDBInQueue";
    private static final String TRANSFER_MDB_OUTPUT_QUEUE = "MDBOutQueue"

   
    private JMSTool jmsTool;

   
    protected void setUp() throws Exception {
        InitialContext ctx = createInitialContext();
        JMSToolHome home = (JMSToolHome) ctx.lookup(JMSBEAN_JNDI);
        jmsTool = home.create();
    }
   
    protected void tearDown() throws Exception {
        if( jmsTool != null ) {
            try {
                jmsTool.drain(TEST_QUEUE);
            } catch (Throwable e) {
            }
        }
    }
   
    public void testSendReceiveMultiple() throws CreateException, RemoteException, NamingException, JMSException {
        for( int i=0; i < 5; i++) {
            String msg1 = "Test Send Receive:"+i;
            jmsTool.sendTextMessage(TEST_QUEUE, msg1);
            String msg2 = jmsTool.receiveTextMessage(TEST_QUEUE, 1000);
            assertEquals("Message are not the same a iteration: "+i, msg1, msg2);
        }
    }

    /**
     * The MDBTransferBean should be moving message from the input queue to the output queue.
     * Check to see if message sent to it's input get to the output queue.
     */
    public void testSendReceiveFromMDB() throws CreateException, RemoteException, NamingException, JMSException {
        HashSet a = new HashSet();
        HashSet b = new HashSet();
       
        for( int i=0; i < 5; i++) {
            String msg1 = "Test Send Receive From MDB:"+i;
            a.add(msg1);
            jmsTool.sendTextMessage(TRANSFER_MDB_INPUT_QUEUE, msg1);
        }
       
        for( int i=0; i < 5; i++) {
            String msg2 = jmsTool.receiveTextMessage(TRANSFER_MDB_OUTPUT_QUEUE, 1000);
            b.add(msg2);
        }
       
        // Compare the messages using sets since they may be received out of order since,
        // the MDB runns concurrent threads.
       
        assertEquals(a,b);
    }
   
    private InitialContext createInitialContext() throws NamingException {
        Hashtable props = new Hashtable();
        props.put("java.naming.factory.initial", "org.openejb.client.RemoteInitialContextFactory");
        props.put("java.naming.provider.url", "127.0.0.1:4201");
        props.put("java.naming.security.principal", "testuser");
        props.put("java.naming.security.credentials", "testpassword");
        return new InitialContext(props);
    }

}
TOP

Related Classes of org.activemq.itests.ResourceAdapterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.