TEST_F(ClientTxnTest, testTxnRollback) { util::CountDownLatch memberRemovedLatch(1); std::string queueName = "testTxnRollback"; MyLifecycleListener myLifecycleListener(memberRemovedLatch); client->getCluster().addMembershipListener(&myLifecycleListener); TransactionContext context = client->newTransactionContext(); context.beginTransaction(); TransactionalQueue<std::string> queue = context.getQueue<std::string>(queueName); queue.offer("item"); server->shutdown(); ASSERT_THROW(context.commitTransaction(), exception::IException); context.rollbackTransaction(); ASSERT_TRUE(memberRemovedLatch.await(10)); IQueue<std::string> q = client->getQueue<std::string>(queueName); try { ASSERT_EQ(0, q.size()); ASSERT_EQ(q.poll().get(), (std::string *)NULL); } catch (exception::IException& e) { std::cout << e.what() << std::endl; } }
TEST_F(ClientTxnQueueTest, testTransactionalOfferPoll1) { std::string name = "defQueue"; TransactionContext context = client->newTransactionContext(); context.beginTransaction(); TransactionalQueue<std::string> q = context.getQueue<std::string>(name); ASSERT_TRUE(q.offer("ali")); ASSERT_EQ(1, q.size()); ASSERT_EQ("ali", *(q.poll())); ASSERT_EQ(0, q.size()); context.commitTransaction(); ASSERT_EQ(0, client->getQueue<std::string>(name).size()); }