@Test
public void testPublish() throws Exception {
TestClient client = new TestClient();
MessagingContext ctx = new MessagingContext( RecipientKind.DM, "domain", "app1" );
Assert.assertEquals( 0, client.ctxToMessages.size());
client.publish( ctx, new MsgCmdSendInstances());
client.publish( ctx, new MsgCmdSendInstances());
Assert.assertEquals( 1, client.ctxToMessages.size());
List<Message> messages = client.ctxToMessages.get( ctx );
Assert.assertEquals( 2, client.messagesForTheDm.size());
Assert.assertEquals( 2, messages.size());
Assert.assertEquals( MsgCmdSendInstances.class, messages.get( 0 ).getClass());
Assert.assertEquals( MsgCmdSendInstances.class, messages.get( 1 ).getClass());
Assert.assertEquals( 0, client.messagesForAgents.size());
ctx = new MessagingContext( RecipientKind.AGENTS, "domain", "app1" );
client.publish( ctx, new MsgCmdResynchronize());
Assert.assertEquals( 1, client.messagesForAgents.size());
Assert.assertEquals( MsgCmdResynchronize.class, client.messagesForAgents.get( 0 ).getClass());
}