void OpenwireNonBlockingRedeliveryTest::testMessageRedeliveriesAreInOrder() { LinkedHashSet< Pointer<MessageId> > received; LinkedHashSet< Pointer<MessageId> > beforeRollback; LinkedHashSet< Pointer<MessageId> > afterRollback; const int MSG_COUNT = 100; const std::string destinationName = "testMessageDeleiveredWhenNonBlockingEnabled"; destroyDestination(getBrokerURL(), destinationName); Pointer<ActiveMQConnectionFactory> connectionFactory(new ActiveMQConnectionFactory(getBrokerURL())); Pointer<Connection> connection(connectionFactory->createConnection()); Pointer<Session> session(connection->createSession(Session::SESSION_TRANSACTED)); Pointer<Destination> destination(session->createQueue(destinationName)); Pointer<MessageConsumer> consumer(session->createConsumer(destination.get())); ReceivedListener receivedListener(&received); consumer->setMessageListener(&receivedListener); sendMessages(getBrokerURL(), destinationName, MSG_COUNT); connection->start(); CPPUNIT_ASSERT_MESSAGE("Pre-Rollack received size incorrect", assertTrue(received, MSG_COUNT)); beforeRollback.addAll(received); received.clear(); session->rollback(); CPPUNIT_ASSERT_MESSAGE("Post-Rollack received size incorrect", assertTrue(received, MSG_COUNT)); afterRollback.addAll(received); received.clear(); CPPUNIT_ASSERT_EQUAL(beforeRollback.size(), afterRollback.size()); CPPUNIT_ASSERT(beforeRollback.equals(afterRollback)); Pointer< Iterator<Pointer<MessageId> > > after(afterRollback.iterator()); Pointer< Iterator<Pointer<MessageId> > > before(beforeRollback.iterator()); while (before->hasNext() && after->hasNext()) { Pointer<MessageId> original = before->next(); Pointer<MessageId> rolledBack = after->next(); long long originalSeq = original->getProducerSequenceId(); long long rolledbackSeq = rolledBack->getProducerSequenceId(); CPPUNIT_ASSERT_EQUAL(originalSeq, rolledbackSeq); } session->commit(); connection->close(); destroyDestination(getBrokerURL(), destinationName); }
void LinkedHashSetTest::testSize() { LinkedHashSet<int> set; populateSet(set); CPPUNIT_ASSERT_MESSAGE("Returned incorrect size", set.size() == SET_SIZE); set.clear(); CPPUNIT_ASSERT_MESSAGE("Cleared set returned non-zero size", 0 == set.size()); }
void LinkedHashSetTest::testClear() { LinkedHashSet<int> set; populateSet(set); CPPUNIT_ASSERT(set.size() > 0); set.clear(); CPPUNIT_ASSERT(set.size() == 0); CPPUNIT_ASSERT(!set.contains(1)); }
void OpenwireNonBlockingRedeliveryTest::testMessageDeleiveryDoesntStop() { LinkedHashSet< Pointer<MessageId> > received; LinkedHashSet< Pointer<MessageId> > beforeRollback; LinkedHashSet< Pointer<MessageId> > afterRollback; const int MSG_COUNT = 100; const std::string destinationName = "testMessageDeleiveryDoesntStop"; destroyDestination(getBrokerURL(), destinationName); Pointer<ActiveMQConnectionFactory> connectionFactory(new ActiveMQConnectionFactory(getBrokerURL())); Pointer<Connection> connection(connectionFactory->createConnection()); Pointer<Session> session(connection->createSession(Session::SESSION_TRANSACTED)); Pointer<Destination> destination(session->createQueue(destinationName)); Pointer<MessageConsumer> consumer(session->createConsumer(destination.get())); ReceivedListener receivedListener(&received); consumer->setMessageListener(&receivedListener); sendMessages(getBrokerURL(), destinationName, MSG_COUNT); connection->start(); CPPUNIT_ASSERT_MESSAGE("Pre-Rollack received size incorrect", assertTrue(received, MSG_COUNT)); beforeRollback.addAll(received); received.clear(); session->rollback(); sendMessages(getBrokerURL(), destinationName, MSG_COUNT); CPPUNIT_ASSERT_MESSAGE("Post-Rollack received size incorrect", assertTrue(received, MSG_COUNT * 2)); afterRollback.addAll(received); received.clear(); CPPUNIT_ASSERT_EQUAL(beforeRollback.size() * 2, afterRollback.size()); session->commit(); connection->close(); destroyDestination(getBrokerURL(), destinationName); }
void OpenwireNonBlockingRedeliveryTest::testNonBlockingMessageDeleiveryWithRollbacks() { LinkedHashSet< Pointer<MessageId> > received; const int MSG_COUNT = 100; const std::string destinationName = "testNonBlockingMessageDeleiveryWithRollbacks"; destroyDestination(getBrokerURL(), destinationName); Pointer<ActiveMQConnectionFactory> connectionFactory(new ActiveMQConnectionFactory(getBrokerURL())); connectionFactory->getRedeliveryPolicy()->setInitialRedeliveryDelay(TimeUnit::SECONDS.toMillis(10)); Pointer<Connection> connection(connectionFactory->createConnection()); Pointer<Session> session(connection->createSession(Session::SESSION_TRANSACTED)); Pointer<Destination> destination(session->createQueue(destinationName)); Pointer<MessageConsumer> consumer(session->createConsumer(destination.get())); ReceivedListener receivedListener(&received); consumer->setMessageListener(&receivedListener); sendMessages(getBrokerURL(), destinationName, MSG_COUNT); connection->start(); CPPUNIT_ASSERT_MESSAGE("Pre-Rollack received size incorrect", assertTrue(received, MSG_COUNT)); received.clear(); SomeRollbacksListener newListener(session, &received); consumer->setMessageListener(&newListener); session->rollback(); CPPUNIT_ASSERT_MESSAGE("Post-Rollack received size incorrect", assertTrue(received, MSG_COUNT)); session->commit(); connection->close(); destroyDestination(getBrokerURL(), destinationName); }