}
public void testDispatchSync() throws Exception {
IMocksControl control = EasyMock.createControl();
ExchangeListener listener = control.createMock(ExchangeListener.class);
control.makeThreadSafe(true);
nmr.getListenerRegistry().register(listener, null);
final Exchange e = ep1.channel.createExchange(Pattern.InOnly);
final CountDownLatch latch = new CountDownLatch(1);
listener.exchangeSent(same(e));
listener.exchangeDelivered(same(e));
replay(listener);
synchronized (ep2) {
new Thread() {
public void run() {
e.setTarget(ep1.channel.getNMR().getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME, "ep2")));
ep1.channel.sendSync(e);
latch.countDown();
}
}.start();
ep2.wait();
}
verify(listener);
reset(listener);
control.makeThreadSafe(true);
listener.exchangeSent(same(e));
listener.exchangeDelivered(same(e));
replay(listener);
ep2.done();
latch.await();