@Test public void testSetFactory() throws Exception { // Set a first factory ReconfigurableClientDm client = new ReconfigurableClientDm(); final MessagingClientFactoryRegistry registry1 = new MessagingClientFactoryRegistry(); ConcurrentLinkedQueue<?> listeners1 = TestUtils.getInternalField( registry1, "listeners", ConcurrentLinkedQueue.class ); Assert.assertEquals( 0, listeners1.size()); Assert.assertNull( TestUtils.getInternalField( client, "registry", MessagingClientFactoryRegistry.class )); client.setRegistry( registry1 ); Assert.assertEquals( 1, listeners1.size()); Assert.assertEquals( registry1, TestUtils.getInternalField( client, "registry", MessagingClientFactoryRegistry.class )); // Change the factory final MessagingClientFactoryRegistry registry2 = new MessagingClientFactoryRegistry(); ConcurrentLinkedQueue<?> listeners2 = TestUtils.getInternalField( registry2, "listeners", ConcurrentLinkedQueue.class ); Assert.assertEquals( 0, listeners2.size()); client.setRegistry( registry2 ); Assert.assertEquals( 0, listeners1.size()); Assert.assertEquals( 1, listeners2.size()); Assert.assertEquals( registry2, TestUtils.getInternalField( client, "registry", MessagingClientFactoryRegistry.class )); }
/** * Checks the DM's debugging exchanges. * @throws Exception */ public void testDmDebug() throws Exception { List<Message> dmMessages = new ArrayList<>(); ReconfigurableClientDm dmClient = new ReconfigurableClientDm(); dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType()); this.clients.add( dmClient ); dmClient.sendMessageToTheDm( new MsgEcho( "hey 1" )); Thread.sleep( getDelay()); Assert.assertEquals( 0, dmMessages.size()); dmClient.listenToTheDm( ListenerCommand.START ); dmClient.sendMessageToTheDm( new MsgEcho( "hey 2" )); dmClient.sendMessageToTheDm( new MsgEcho( "hey 3" )); Thread.sleep( getDelay()); Assert.assertEquals( 2, dmMessages.size()); Assert.assertEquals( MsgEcho.class, dmMessages.get( 0 ).getClass()); Assert.assertEquals( "hey 2", ((MsgEcho) dmMessages.get( 0 )).getContent()); Assert.assertEquals( MsgEcho.class, dmMessages.get( 1 ).getClass()); Assert.assertEquals( "hey 3", ((MsgEcho) dmMessages.get( 1 )).getContent()); dmClient.listenToTheDm( ListenerCommand.STOP ); dmClient.sendMessageToTheDm( new MsgEcho( "hey again" )); Thread.sleep( getDelay()); Assert.assertEquals( 2, dmMessages.size()); }
/** * Mimics the DM's behavior when it creates, deletes and recreates a same application. * <p> * This class prevents regressions for #749. * </p> * * @throws Exception */ public void test_applicationRegeneration() throws Exception { TestApplication app = new TestApplication(); List<Message> dmMessages = new ArrayList<>(); ReconfigurableClientDm dmClient = new ReconfigurableClientDm(); dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType()); this.clients.add( dmClient ); dmClient.listenToAgentMessages( app, ListenerCommand.START ); dmClient.listenToAgentMessages( app, ListenerCommand.STOP ); dmClient.deleteMessagingServerArtifacts( app ); Thread.sleep( getDelay()); dmClient.listenToAgentMessages( app, ListenerCommand.START ); dmClient.listenToAgentMessages( app, ListenerCommand.STOP ); dmClient.deleteMessagingServerArtifacts( app ); }
client.setRegistry( registry ); client.console = Mockito.mock( PrintStream.class );
dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType());
dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType());
dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType());
client.setRegistry( registry );
client.setRegistry( registry ); client.console = Mockito.mock( PrintStream.class );
dmClient.setRegistry( this.registry ); dmClient.associateMessageProcessor( createDmProcessor( dmMessages )); dmClient.switchMessagingType( getMessagingType());