import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import javax.naming.InitialContext; import javax.naming.NameNotFoundException; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.narayana.blacktie.administration.Authentication; import org.jboss.narayana.blacktie.administration.BlacktieAdministration; import org.jboss.narayana.blacktie.administration.BlacktieStompAdministrationService; import org.jboss.narayana.blacktie.administration.core.AdministrationProxy; import org.jboss.narayana.blacktie.jatmibroker.core.ResponseMonitor; import org.jboss.narayana.blacktie.jatmibroker.core.conf.ConfigurationException; import org.jboss.narayana.blacktie.jatmibroker.core.transport.Message; import org.jboss.narayana.blacktie.jatmibroker.core.tx.TransactionException; import org.jboss.narayana.blacktie.jatmibroker.xatmi.BlackTieService; import org.jboss.narayana.blacktie.jatmibroker.xatmi.mdb.MDBBlacktieService; import org.jboss.narayana.blacktie.jatmibroker.xatmi.impl.X_OCTET_Impl; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(Arquillian.class) public class AdvertiseUnadvertiseTest { private static final Logger log = LogManager.getLogger(AdvertiseUnadvertiseTest.class); @Deployment public static Archive<?> createTestArchive() { final String ManifestMF = "Manifest-Version: 1.0\n" + "Dependencies: org.jboss.jts,org.jboss.as.controller-client,org.jboss.dmr\n"; return ShrinkWrap .create(WebArchive.class, "test.war") .addClasses(BlacktieStompAdministrationService.class, Authentication.class, AdministrationProxy.class, BlacktieAdministration.class, ResponseMonitor.class) .addPackage(MDBBlacktieService.class.getPackage()) .addPackage(BlackTieService.class.getPackage()) .addPackage(TransactionException.class.getPackage()) .addPackage(ConfigurationException.class.getPackage()) .addPackage(Message.class.getPackage()) .addPackage(X_OCTET_Impl.class.getPackage()) .addAsResource("btconfig.xsd") .addAsResource("btconfig.xml").setManifest(new StringAsset(ManifestMF)) .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); } @Test public void testAdvertiseUnadvertise() throws Exception { BlacktieStompAdministrationService service = new BlacktieStompAdministrationService(); log.info("Got the service"); try { new InitialContext().lookup("java:/queue/BTR_.testsui1"); fail("Should not be able to resolve the queue before it is created"); } catch (NameNotFoundException e) { // Expected log.info("Got the exception"); } assertTrue(service.deployQueue(".testsui1", "testui", false, "queue", "5.6.0.Final-SNAPSHOT") == 1); try { new InitialContext().lookup("java:/queue/BTR_.testsui1"); log.info("Got the queue"); } catch (NameNotFoundException e) { try { assertTrue(service.decrementConsumer(".testsui1") == 1); } finally { fail("Could not resolve the queue"); } } assertTrue(service.decrementConsumer(".testsui1") == 1); log.info("Undeployed queue"); try { new InitialContext().lookup("java:/queue/BTR_.testsui1"); fail("Should not be able to resolve the queue after it is destroyed"); } catch (NameNotFoundException e) { // Expected log.info("Got the exception 2"); } } }