);
client.start();
MessageImpl message = (MessageImpl)exchanger.exchange(null,1,TimeUnit.SECONDS);
assertEquals(Bayeux.META_HANDSHAKE,message.getChannel());
assertTrue(message.isSuccessful());
String id = client.getId();
assertTrue(id!=null);
message.decRef();
message = (MessageImpl)exchanger.exchange(null,1,TimeUnit.SECONDS);
assertEquals(Bayeux.META_CONNECT,message.getChannel());
assertTrue(message.isSuccessful());
message.decRef();
client.subscribe("/a/channel");
message = (MessageImpl)exchanger.exchange(null,1,TimeUnit.SECONDS);
assertEquals(Bayeux.META_SUBSCRIBE,message.getChannel());
assertTrue(message.isSuccessful());
message.decRef();
client.publish("/a/channel","data","id");
message = (MessageImpl)exchanger.exchange(null,1,TimeUnit.SECONDS);
assertEquals("data",message.getData());
message.decRef();
client.disconnect();
message = (MessageImpl)exchanger.exchange(null,1,TimeUnit.SECONDS);
assertEquals(Bayeux.META_DISCONNECT,message.getChannel());
assertTrue(message.isSuccessful());
message.decRef();
Object o = exchanger.exchange(null,1,TimeUnit.SECONDS);
assertTrue(client.isStopped());
}