Refine search
@Test public void testPublishSameHandlerRegisteredTwice() { String str = TestUtils.randomUnicodeString(1000); AtomicInteger count = new AtomicInteger(); Handler<Message<String>> handler = (Message<String> msg) -> { assertEquals(str, msg.body()); if (count.incrementAndGet() == 2) { testComplete(); } }; eb.<String>consumer(ADDRESS1).handler(handler); eb.<String>consumer(ADDRESS1).handler(handler); eb.publish(ADDRESS1, str); await(); }
@Test public void testPublishMultipleHandlersDifferentAddresses() { String str = TestUtils.randomUnicodeString(1000); eb.<String>consumer(ADDRESS1).handler((Message<String> msg) -> { assertEquals(str, msg.body()); testComplete(); }); eb.<String>consumer(ADDRESS2).handler((Message<String> msg) -> { fail("Should not receive message"); }); eb.publish(ADDRESS1, str); await(); }
@Override public void start(Future<Void> startFuture) throws Exception { EventBus eventBus = getVertx().eventBus(); MessageConsumer<String> consumer = eventBus.consumer("whatever"); consumer.handler(m -> { if (!unregisterCalled) { consumer.unregister(v -> unregistered.set(true)); unregisterCalled = true; } m.reply("ok"); }).completionHandler(startFuture); } };
@Test public void testSendMultipleAddresses() { String str = TestUtils.randomUnicodeString(100); AtomicInteger cnt = new AtomicInteger(); eb.<String>consumer(ADDRESS1).handler((Message<String> msg) -> { fail("Should not receive message"); }); eb.<String>consumer(ADDRESS2).handler((Message<String> msg) -> { assertEquals(str, msg.body()); if (cnt.incrementAndGet() == 2) { testComplete(); } }); eb.send(ADDRESS2, str); eb.send(ADDRESS2, str); await(); }
@Test public void testChangesNotVisibleObject3() { Map<String, Object> map = new HashMap<>(); final JsonObject obj = new JsonObject(map); eb.<JsonObject>consumer("foo").handler((Message<JsonObject> msg) -> { vertx.setTimer(1000, id -> { assertFalse(msg.body().containsKey("b")); testComplete(); }); }); eb.send("foo", obj); map.put("b", "uhqdihuqwd"); await(); }
@Test public void testConsumerHandlesCompletionAsynchronously() { MessageConsumer<Object> consumer = eb.consumer(ADDRESS1); ThreadLocal<Object> stack = new ThreadLocal<>(); stack.set(true); consumer.completionHandler(v -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); testComplete(); }); consumer.handler(msg -> { }); await(); }
@Test public void testConsumerHandlesCompletionAsynchronously2() { MessageConsumer<Object> consumer = eb.consumer(ADDRESS1); consumer.handler(msg -> { }); ThreadLocal<Object> stack = new ThreadLocal<>(); stack.set(true); consumer.completionHandler(v -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); testComplete(); }); await(); }
@Test public void testChangesNotVisibleArray3() { List<Object> list = new ArrayList<>(); final JsonArray obj = new JsonArray(list); eb.<JsonArray>consumer("foo").handler((Message<JsonArray> msg) -> { vertx.setTimer(1000, id -> { assertEquals(0, msg.body().size()); testComplete(); }); }); eb.send("foo", obj); list.add("uhwqdiuh"); await(); } }
@Test public void testPublishMultipleHandlersUnregisterOne() { String str = TestUtils.randomUnicodeString(1000); Handler<Message<String>> handler1 = (Message<String> msg) -> { assertEquals(str, msg.body()); testComplete(); }; Handler<Message<String>> handler2 = (Message<String> msg) -> { fail("Should not be called"); }; eb.<String>consumer(ADDRESS1).handler(handler1); MessageConsumer reg = eb.<String>consumer(ADDRESS1).handler(handler2); reg.unregister(); eb.publish(ADDRESS1, str); await(); }
@Test public void testChangesNotVisibleObject2() { final JsonObject obj = new JsonObject(); eb.<JsonObject>consumer("foo").handler((Message<JsonObject> msg) -> { msg.body().put("b", "uqwduihwqd"); }); eb.send("foo", obj); vertx.setTimer(1000, id -> { assertFalse(obj.containsKey("b")); testComplete(); }); await(); }