ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); }); ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); });
ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); }); ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); });
ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); }); ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); });
ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); }); ctx.assertTrue(handler.isCompleted() && assigned.isCompleted()); finished.countDown(); });
@Test public void noConnectSent(TestContext context) { NetClient client = this.vertx.createNetClient(); Async async = context.async(); client.connect(MQTT_SERVER_PORT, MQTT_SERVER_HOST, done -> { if (done.succeeded()) { done.result().closeHandler(v -> { log.info("No CONNECT sent in " + MQTT_TIMEOUT_ON_CONNECT + " secs. Closing connection."); async.complete(); }); } else { context.fail(); } }); // check that the async is completed (so connection was closed by server) in // the specified timeout (+500 ms just for being sure) async.await(500 + MQTT_TIMEOUT_ON_CONNECT * 1000); if (!async.isCompleted()) context.fail(); }
@Test public void noConnectSent(TestContext context) { NetClient client = this.vertx.createNetClient(); Async async = context.async(); client.connect(MQTT_SERVER_PORT, MQTT_SERVER_HOST, done -> { if (done.succeeded()) { done.result().closeHandler(v -> { log.info("No CONNECT sent in " + MQTT_TIMEOUT_ON_CONNECT + " secs. Closing connection."); async.complete(); }); } else { context.fail(); } }); // check that the async is completed (so connection was closed by server) in // the specified timeout (+500 ms just for being sure) async.await(500 + MQTT_TIMEOUT_ON_CONNECT * 1000); if (!async.isCompleted()) context.fail(); }
@Test public void testClientClosesDuringUpload(TestContext ctx) { Async async = ctx.async(); Async closeLatch = ctx.async(); SocketAddress backend = startHttpBackend(ctx, 8081, req -> { req.response().closeHandler(v -> { async.complete(); }); req.handler(buff -> { if (!closeLatch.isCompleted()) { closeLatch.complete(); } }); }); startProxy(backend); HttpClient client = vertx.createHttpClient(); HttpClientRequest req = client.post(8080, "localhost", "/", resp -> ctx.fail()); req.putHeader("Content-Length", "2048"); req.write(Buffer.buffer(new byte[1024])); closeLatch.awaitSuccess(10000); req.connection().close(); }
@Test public void consumerPrefetch(TestContext ctx) throws Exception { // 1. Limit number of unack messages to 2 // 2. Send 3 messages // 3. Ensure only 2 messages received int count = 3; int amountOfUnAckMessages = count - 1; Async prefetchDone = ctx.async(); client.basicQos(amountOfUnAckMessages, ctx.asyncAssertSuccess(v -> prefetchDone.complete())); prefetchDone.await(); Set<String> messages = createMessages(count); String queue = setupQueue(ctx, messages); String address = queue + ".address"; Async receivedExpectedNumberOfMessages = ctx.async(amountOfUnAckMessages); vertx.eventBus().consumer(address, msg -> { ctx.assertFalse(receivedExpectedNumberOfMessages.isCompleted()); receivedExpectedNumberOfMessages.countDown(); }); client.basicConsume(queue, address, false, ctx.asyncAssertSuccess()); receivedExpectedNumberOfMessages.awaitSuccess(15000); // At the point we are sure, that we have already received 2 messages. // But, if 3rd message will arrive the test will fail in the next second. Async async = ctx.async(); vertx.setTimer(1000, spent -> async.countDown()); }
@Test public void consumerPrefetch(TestContext ctx) throws Exception { // 1. Limit number of unack messages to 2 // 2. Send 3 messages // 3. Ensure only 2 messages received int count = 3; int amountOfUnAckMessages = count - 1; Async prefetchDone = ctx.async(); client.basicQos(amountOfUnAckMessages, ctx.asyncAssertSuccess(v -> prefetchDone.complete())); prefetchDone.await(); Set<String> messages = createMessages(count); String queue = setupQueue(ctx, messages); String address = queue + ".address"; Async receivedExpectedNumberOfMessages = ctx.async(amountOfUnAckMessages); vertx.eventBus().consumer(address, msg -> { ctx.assertFalse(receivedExpectedNumberOfMessages.isCompleted()); receivedExpectedNumberOfMessages.countDown(); }); client.basicConsume(queue, address, false, ctx.asyncAssertSuccess()); receivedExpectedNumberOfMessages.awaitSuccess(15000); // At the point we are sure, that we have already received 2 messages. // But, if 3rd message will arrive the test will fail in the next second. Async async = ctx.async(); vertx.setTimer(1000, spent -> async.countDown()); }