package org.javaee7.jms.xa; import org.javaee7.jms.xa.producers.ConnectionFactoryProducer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.assertEquals; @RunWith(Arquillian.class) public class UserManagerNonXATest extends AbstractUserManagerTest { @Deployment public static WebArchive createDeployment() { return createWebArchive().addClass(ConnectionFactoryProducer.class); } @Test public void emailAlreadyRegisteredNonXA() throws Exception { deliveryStats.reset(); assertEquals(0L, deliveryStats.getDeliveredMessagesCount()); try { /** * This email is already in DB so we should get exception trying to register it. */ userManager.register("jack@itcrowd.pl"); } catch (Exception e) { logger.info("Got expected exception " + e); } try { ReceptionSynchronizer.waitFor(JMSMailman.class, "onMessage"); } catch (AssertionError error) { logger.info("Got expected error " + error); logger.info("We're just making sure that we have waited long enough to let the message get to MDB"); } assertEquals("Message should be delivered despite transaction rollback", 1L, deliveryStats.getDeliveredMessagesCount()); } @Test public void happyPathNonXA() throws Exception { deliveryStats.reset(); assertEquals(0L, deliveryStats.getDeliveredMessagesCount()); userManager.register("bernard@itcrowd.pl"); try { ReceptionSynchronizer.waitFor(JMSMailman.class, "onMessage"); } catch (AssertionError error) { logger.info("Got expected error " + error); logger.info("We're just making sure that we have waited long enough to let the message get to MDB"); } assertEquals(1L, deliveryStats.getDeliveredMessagesCount()); } }