Author: cmueller
Date: Wed May 11 21:00:25 2011
New Revision: 1102088

URL: http://svn.apache.org/viewvc?rev=1102088&view=rev
Log:
Polished the tests

Modified:
    
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
    
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
    
camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.xml

Modified: 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java?rev=1102088&r1=1102087&r2=1102088&view=diff
==============================================================================
--- 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
 (original)
+++ 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
 Wed May 11 21:00:25 2011
@@ -51,13 +51,13 @@ public class FromJmsToJdbcIdempotentCons
     public void setUp() throws Exception {
         super.setUp();
 
-        dataSource = context.getRegistry().lookup("dataSource", 
DataSource.class);
+        dataSource = context.getRegistry().lookup("myNonXADataSource", 
DataSource.class);
         jdbcTemplate = new JdbcTemplate(dataSource);
         jdbcTemplate.afterPropertiesSet();
 
         setupRepository();
     }
-
+    
     protected void setupRepository() {
         try {
             jdbcTemplate.execute("DROP TABLE CAMEL_MESSAGEPROCESSED");
@@ -215,7 +215,7 @@ public class FromJmsToJdbcIdempotentCons
         assertEquals("DONE-F", consumer.receiveBody("activemq:queue:outbox", 
3000));
     }
     
-    private void checkInitialState() {
+    protected void checkInitialState() {
         // check there are no messages in the database and JMS queue
         assertEquals(0, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
         assertNull(consumer.receiveBody("activemq:queue:outbox", 2000));

Modified: 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java?rev=1102088&r1=1102087&r2=1102088&view=diff
==============================================================================
--- 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
 (original)
+++ 
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
 Wed May 11 21:00:25 2011
@@ -16,227 +16,16 @@
  */
 package org.apache.camel.itest.sql;
 
-import java.net.ConnectException;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.sql.DataSource;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.spi.IdempotentRepository;
-import org.apache.camel.test.junit4.CamelSpringTestSupport;
-import org.junit.Before;
-import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.jdbc.core.JdbcTemplate;
 
 /**
  * Jms with JDBC idempotent consumer using XA test.
  */
-public class FromJmsToJdbcIdempotentConsumerToJmsXaTest extends 
CamelSpringTestSupport {
-
-    protected JdbcTemplate jdbcTemplate;
-    protected DataSource dataSource;
+public class FromJmsToJdbcIdempotentConsumerToJmsXaTest extends 
FromJmsToJdbcIdempotentConsumerToJmsTest {
 
     @Override
     protected AbstractApplicationContext createApplicationContext() {
         return new 
ClassPathXmlApplicationContext("org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.xml");
     }
-
-    @Override
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-
-        dataSource = context.getRegistry().lookup("myNonXADataSource", 
DataSource.class);
-        jdbcTemplate = new JdbcTemplate(dataSource);
-        jdbcTemplate.afterPropertiesSet();
-
-        setupRepository();
-    }
-
-    protected void setupRepository() {
-        try {
-            jdbcTemplate.execute("DROP TABLE CAMEL_MESSAGEPROCESSED");
-        } catch (Exception e) {
-            // ignore
-        }
-        jdbcTemplate.execute("CREATE TABLE CAMEL_MESSAGEPROCESSED 
(processorName VARCHAR(20), messageId VARCHAR(10))");
-    }
-
-    @Test
-    public void testJmsToJdbcJmsCommit() throws Exception {
-        checkInitialState();
-
-        // use a notify to know when the message is done
-        NotifyBuilder notify = new NotifyBuilder(context).whenDone(1).create();
-
-        // use mock during testing as well
-        getMockEndpoint("mock:a").expectedMessageCount(1);
-        getMockEndpoint("mock:b").expectedMessageCount(1);
-
-        template.sendBodyAndHeader("activemq:queue:inbox", "A", "uid", 123);
-
-        // assert mock and wait for the message to be done
-        assertMockEndpointsSatisfied();
-        assertTrue("Should complete 1 message", notify.matchesMockWaitTime());
-
-        // check that there is a message in the database and JMS queue
-        assertEquals(1, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        Object out = consumer.receiveBody("activemq:queue:outbox", 3000);
-        assertEquals("DONE-A", out);
-    }
-
-    @Test
-    public void testJmsToJdbcJmsRollbackAtA() throws Exception {
-        checkInitialState();
-
-        // use a notify to know that after 1+6 (1 original + 6 redelivery) 
attempts from AcitveMQ
-        NotifyBuilder notify = new NotifyBuilder(context).whenDone(7).create();
-
-        getMockEndpoint("mock:a").expectedMessageCount(7);
-        // force exception to occur at mock a
-        getMockEndpoint("mock:a").whenAnyExchangeReceived(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                throw new ConnectException("Forced cannot connect to 
database");
-            }
-        });
-        getMockEndpoint("mock:b").expectedMessageCount(0);
-
-        template.sendBodyAndHeader("activemq:queue:inbox", "A", "uid", 123);
-
-        // assert mock and wait for the message to be done
-        assertMockEndpointsSatisfied();
-        assertTrue("Should complete 7 message", notify.matchesMockWaitTime());
-
-        // check that there is a message in the database and JMS queue
-        assertEquals(0, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        assertNull(consumer.receiveBody("activemq:queue:outbox", 3000));
-
-        // the message should have been moved to the AMQ DLQ queue
-        assertEquals("A", consumer.receiveBody("activemq:queue:ActiveMQ.DLQ", 
3000));
-    }
-
-    @Test
-    public void testJmsToJdbcJmsRollbackAtB() throws Exception {
-        checkInitialState();
-
-        // use a notify to know that after 1+6 (1 original + 6 redelivery) 
attempts from AcitveMQ
-        NotifyBuilder notify = new NotifyBuilder(context).whenDone(7).create();
-
-        getMockEndpoint("mock:a").expectedMessageCount(7);
-        getMockEndpoint("mock:b").expectedMessageCount(7);
-        // force exception to occur at mock b
-        getMockEndpoint("mock:b").whenAnyExchangeReceived(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                throw new ConnectException("Forced cannot send to AMQ queue");
-            }
-        });
-
-        template.sendBodyAndHeader("activemq:queue:inbox", "B", "uid", 456);
-
-        // assert mock and wait for the message to be done
-        assertMockEndpointsSatisfied();
-        assertTrue("Should complete 7 messages", notify.matchesMockWaitTime());
-
-        // check that there is a message in the database and JMS queue
-        assertEquals(0, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        assertNull(consumer.receiveBody("activemq:queue:outbox", 3000));
-
-        // the message should have been moved to the AMQ DLQ queue
-        assertEquals("B", consumer.receiveBody("activemq:queue:ActiveMQ.DLQ", 
3000));
-    }
-
-    @Test
-    public void testFilterIdempotent() throws Exception {
-        checkInitialState();
-
-        // use a notify to know when the message is done
-        NotifyBuilder notify = new NotifyBuilder(context).whenDone(3).create();
-
-        // use mock during testing as well
-        getMockEndpoint("mock:a").expectedMessageCount(3);
-        // there should be 1 duplicate
-        getMockEndpoint("mock:b").expectedMessageCount(2);
-
-        template.sendBodyAndHeader("activemq:queue:inbox", "D", "uid", 111);
-        template.sendBodyAndHeader("activemq:queue:inbox", "E", "uid", 222);
-        template.sendBodyAndHeader("activemq:queue:inbox", "D", "uid", 111);
-
-        // assert mock and wait for the message to be done
-        assertMockEndpointsSatisfied();
-        assertTrue("Should complete 3 messages", notify.matchesMockWaitTime());
-
-        // check that there is two messages in the database and JMS queue
-        assertEquals(2, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        assertEquals("DONE-D", consumer.receiveBody("activemq:queue:outbox", 
3000));
-        assertEquals("DONE-E", consumer.receiveBody("activemq:queue:outbox", 
3000));
-    }
-    
-    @Test
-    public void testRetryAfterException() throws Exception {
-        checkInitialState();
-        
-        final AtomicInteger counter = new AtomicInteger();
-        
-        // use a notify to know when the message is done
-        NotifyBuilder notify = new NotifyBuilder(context).whenDone(4).create();
-
-        // use mock during testing as well
-        getMockEndpoint("mock:a").expectedMessageCount(4);
-        // there should be 1 duplicate
-        getMockEndpoint("mock:b").expectedMessageCount(4);
-        getMockEndpoint("mock:b").whenAnyExchangeReceived(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                if (counter.getAndIncrement() == 1) {
-                    throw new ConnectException("Forced cannot send to AMQ 
queue");
-                }
-            }
-        });
-
-        template.sendBodyAndHeader("activemq:queue:inbox", "D", "uid", 111);
-        template.sendBodyAndHeader("activemq:queue:inbox", "E", "uid", 222);
-        template.sendBodyAndHeader("activemq:queue:inbox", "F", "uid", 333);
-
-        // assert mock and wait for the message to be done
-        assertMockEndpointsSatisfied();
-        assertTrue("Should complete 4 messages", notify.matchesMockWaitTime());
-
-        // check that there is two messages in the database and JMS queue
-        assertEquals(3, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        assertEquals("DONE-D", consumer.receiveBody("activemq:queue:outbox", 
3000));
-        assertEquals("DONE-E", consumer.receiveBody("activemq:queue:outbox", 
3000));
-        assertEquals("DONE-F", consumer.receiveBody("activemq:queue:outbox", 
3000));
-    }
-    
-    private void checkInitialState() {
-        // check there are no messages in the database and JMS queue
-        assertEquals(0, jdbcTemplate.queryForInt("select count(*) from  
CAMEL_MESSAGEPROCESSED"));
-        assertNull(consumer.receiveBody("activemq:queue:outbox", 2000));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @SuppressWarnings("unchecked")
-            @Override
-            public void configure() throws Exception {
-                IdempotentRepository<String> repository = 
context.getRegistry().lookup("messageIdRepository", IdempotentRepository.class);
-
-                from("activemq:queue:inbox")
-                    .transacted("required")
-                    .to("mock:a")
-                    .idempotentConsumer(header("uid"), repository)
-                    .to("mock:b")
-                    .transform(simple("DONE-${body}"))
-                    .to("activemq:queue:outbox");
-            }
-        };
-    }
 }

Modified: 
camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.xml?rev=1102088&r1=1102087&r2=1102088&view=diff
==============================================================================
--- 
camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.xml
 (original)
+++ 
camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.xml
 Wed May 11 21:00:25 2011
@@ -26,7 +26,7 @@
 
     <!-- jdbc idempotent repository -->
     <bean id="messageIdRepository" 
class="org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository">
-        <constructor-arg index="0" ref="dataSource"/>
+        <constructor-arg index="0" ref="myNonXADataSource"/>
         <constructor-arg index="1" value="myProcessor"/>
     </bean>
 
@@ -65,7 +65,7 @@
     </broker:broker>
 
     <!-- datasource used to create the database tables -->
-    <bean id="dataSource" 
class="org.springframework.jdbc.datasource.SingleConnectionDataSource" 
destroy-method="destroy">
+    <bean id="myNonXADataSource" 
class="org.springframework.jdbc.datasource.SingleConnectionDataSource" 
destroy-method="destroy">
         <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
         <property name="url" value="jdbc:hsqldb:mem:mydatabase"/>
         <property name="username" value="sa"/>


Reply via email to