Hello,

Thanks a lot. I did it. (see below) Now i have another question :)   
My Endpoints are connecting to the real queue, and send the message there.
What if i don't want a real connection to a queue,* can the endpoint be
somehow virtualize for unit tests*?
Ofcourse i can use active MQ instead of real MQ, but we will have same stuff
= connection itself.


I mean, to take the endoints from context, somehow vritualize not to have a
real conection(just spmething called Endpoint), and send a message to that
endpoint.

i think you got the idea: to use Endpoints in general instead of real one
(with connection)


Thanks,
Vlad


package main;

import org.apache.camel.CamelContext;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.log4j.PropertyConfigurator;
import org.junit.BeforeClass;
import org.junit.Test;

import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.msg.client.wmq.WMQConstants;






/**
 * @author vlad.costache
 *
 * 
 */
public class TestWithMokk extends CamelTestSupport {    


           @Produce(uri = "jms:queue:msb.2761100008.mpos")
            protected ProducerTemplate template;

        @BeforeClass
        public static void setConn(){
                PropertyConfigurator.configure("./log4j.properties");
                

        

                

                
        }

        /* (non-Javadoc)
         * @see 
org.apache.camel.test.junit4.CamelTestSupport#createCamelContext()
         */
        @Override
        protected CamelContext createCamelContext() throws Exception {
                MQQueueConnectionFactory factory = new 
MQQueueConnectionFactory();              
                factory.setQueueManager("MQSD.ESSWS008");
                factory.setChannel("MSB.S0.SVRCONN");
                factory.setHostName("10.23.8.218");
                factory.setPort(1414);
                factory.setTransportType(WMQConstants. WMQ_CM_CLIENT);


                JmsComponent jmsComponent =
JmsComponent.jmsComponentAutoAcknowledge(factory);
                
                CamelContext camelContext = new DefaultCamelContext();
                camelContext.addComponent("jms", jmsComponent   );
                return camelContext;
                
        }

        @Test
        public void testSendMatchingMessage() throws Exception {
                
                                
                

                context.getRouteDefinitions().get(0).adviceWith(context, new
AdviceWithRouteBuilder() {
                        @Override
                        public void configure() throws Exception {
                                // mock all endpoints
                                mockEndpoints();
                        }
                });


                String sendbody = "<send/>";
                String expectedBody = "<matched/>";

                MockEndpoint mockEndpoint =
getMockEndpoint("mock:jms:queue:msb.2761100008.invoice");
                mockEndpoint.expectedBodiesReceived(expectedBody);
                
                template.sendBodyAndHeader(expectedBody, "foo", "bar");
                mockEndpoint.assertIsSatisfied();
        }
        
        
        
        
        @Override 
        protected RouteBuilder createRouteBuilder() throws Exception {          
                return new  MyRouteBuilder(); 

        } 

}






--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-testing-tp5736444p5736480.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to