use of com.yahoo.messagebus.test.SimpleMessage in project vespa by vespa-engine.
the class LocalNetworkTest method requireThatBlockingSendTimeOutInSendQ.
@Test
public void requireThatBlockingSendTimeOutInSendQ() throws InterruptedException {
final LocalWire wire = new LocalWire();
final Server serverA = new Server(wire);
final SourceSession source = serverA.newSourceSession(new StaticThrottlePolicy().setMaxPendingCount(1));
final Server serverB = new Server(wire);
final IntermediateSession intermediate = serverB.newIntermediateSession();
final Server serverC = new Server(wire);
final DestinationSession destination = serverC.newDestinationSession();
Message msg = new SimpleMessage("foo");
msg.setRoute(new Route().addHop(Hop.parse(intermediate.getConnectionSpec())).addHop(Hop.parse(destination.getConnectionSpec())));
assertThat(source.sendBlocking(msg).isAccepted(), is(true));
long start = SystemTimer.INSTANCE.milliTime();
Message msg2 = new SimpleMessage("foo2");
msg2.setRoute(new Route().addHop(Hop.parse(intermediate.getConnectionSpec())).addHop(Hop.parse(destination.getConnectionSpec())));
long TIMEOUT = 1000;
msg2.setTimeRemaining(TIMEOUT);
Result res = source.sendBlocking(msg2);
assertThat(res.isAccepted(), is(false));
assertEquals(ErrorCode.TIMEOUT, res.getError().getCode());
assertTrue(res.getError().getMessage().endsWith("Timed out in sendQ"));
long end = SystemTimer.INSTANCE.milliTime();
assertThat(end, greaterThanOrEqualTo(start + TIMEOUT));
assertThat(end, lessThan(start + 5 * TIMEOUT));
msg = serverB.messages.poll(60, TimeUnit.SECONDS);
assertThat(msg, instanceOf(SimpleMessage.class));
assertThat(((SimpleMessage) msg).getValue(), is("foo"));
intermediate.forward(msg);
msg = serverC.messages.poll(60, TimeUnit.SECONDS);
assertThat(msg, instanceOf(SimpleMessage.class));
assertThat(((SimpleMessage) msg).getValue(), is("foo"));
Reply reply = new SimpleReply("bar");
reply.swapState(msg);
destination.reply(reply);
reply = serverB.replies.poll(60, TimeUnit.SECONDS);
assertThat(reply, instanceOf(SimpleReply.class));
assertThat(((SimpleReply) reply).getValue(), is("bar"));
intermediate.forward(reply);
reply = serverA.replies.poll(60, TimeUnit.SECONDS);
assertEquals(ErrorCode.TIMEOUT, reply.getError(0).getCode());
assertTrue(reply.getError(0).getMessage().endsWith("Timed out in sendQ"));
reply = serverA.replies.poll(60, TimeUnit.SECONDS);
assertThat(reply, instanceOf(SimpleReply.class));
assertThat(((SimpleReply) reply).getValue(), is("bar"));
serverA.mbus.destroy();
serverB.mbus.destroy();
serverC.mbus.destroy();
}
use of com.yahoo.messagebus.test.SimpleMessage in project vespa by vespa-engine.
the class LocalNetworkTest method requireThatUnknownServiceRepliesWithNoAddressForService.
@Test
public void requireThatUnknownServiceRepliesWithNoAddressForService() throws InterruptedException {
final Server server = new Server(new LocalWire());
final SourceSession source = server.newSourceSession();
final Message msg = new SimpleMessage("foo").setRoute(Route.parse("bar"));
assertThat(source.send(msg).isAccepted(), is(true));
final Reply reply = server.replies.poll(60, TimeUnit.SECONDS);
assertThat(reply, instanceOf(EmptyReply.class));
server.mbus.destroy();
}
use of com.yahoo.messagebus.test.SimpleMessage in project vespa by vespa-engine.
the class SendAdapterTestCase method assertVersionedSend.
// //////////////////////////////////////////////////////////////////////////////
//
// Utilities
//
// //////////////////////////////////////////////////////////////////////////////
private void assertVersionedSend(Version srcVersion, Version itrVersion, Version dstVersion) {
System.out.println("Sending from " + srcVersion + " through " + itrVersion + " to " + dstVersion + ":");
srcServer.net.setVersion(srcVersion);
itrServer.net.setVersion(itrVersion);
dstServer.net.setVersion(dstVersion);
Message msg = new SimpleMessage("foo");
msg.getTrace().setLevel(9);
assertTrue(srcSession.send(msg, Route.parse("itr/session dst/session")).isAccepted());
assertNotNull(msg = ((Receptor) itrSession.getMessageHandler()).getMessage(300));
System.out.println("\tMessage version " + srcProtocol.lastVersion + " serialized at source.");
Version minVersion = srcVersion.compareTo(itrVersion) < 0 ? srcVersion : itrVersion;
assertEquals(minVersion, srcProtocol.lastVersion);
System.out.println("\tMessage version " + itrProtocol.lastVersion + " reached intermediate.");
assertEquals(minVersion, itrProtocol.lastVersion);
itrSession.forward(msg);
assertNotNull(msg = ((Receptor) dstSession.getMessageHandler()).getMessage(300));
System.out.println("\tMessage version " + itrProtocol.lastVersion + " serialized at intermediate.");
minVersion = itrVersion.compareTo(dstVersion) < 0 ? itrVersion : dstVersion;
assertEquals(minVersion, itrProtocol.lastVersion);
System.out.println("\tMessage version " + dstProtocol.lastVersion + " reached destination.");
assertEquals(minVersion, dstProtocol.lastVersion);
Reply reply = new SimpleReply("bar");
reply.swapState(msg);
dstSession.reply(reply);
assertNotNull(reply = ((Receptor) itrSession.getReplyHandler()).getReply(300));
System.out.println("\tReply version " + dstProtocol.lastVersion + " serialized at destination.");
assertEquals(minVersion, dstProtocol.lastVersion);
System.out.println("\tReply version " + itrProtocol.lastVersion + " reached intermediate.");
assertEquals(minVersion, itrProtocol.lastVersion);
itrSession.forward(reply);
assertNotNull(((Receptor) srcSession.getReplyHandler()).getReply(300));
System.out.println("\tReply version " + itrProtocol.lastVersion + " serialized at intermediate.");
minVersion = srcVersion.compareTo(itrVersion) < 0 ? srcVersion : itrVersion;
assertEquals(minVersion, itrProtocol.lastVersion);
System.out.println("\tReply version " + srcProtocol.lastVersion + " reached source.");
assertEquals(minVersion, srcProtocol.lastVersion);
}
use of com.yahoo.messagebus.test.SimpleMessage in project vespa by vespa-engine.
the class ResenderTestCase method createMessage.
// //////////////////////////////////////////////////////////////////////////////
//
// Utilities
//
// //////////////////////////////////////////////////////////////////////////////
private static Message createMessage(String msg) {
SimpleMessage ret = new SimpleMessage(msg);
ret.getTrace().setLevel(9);
return ret;
}
use of com.yahoo.messagebus.test.SimpleMessage in project vespa by vespa-engine.
the class ChokeTestCase method createMessage.
private static Message createMessage(String msg) {
Message ret = new SimpleMessage(msg);
ret.getTrace().setLevel(9);
return ret;
}
Aggregations