@Override public KafkaProducer<K, V> drainHandler(Handler<Void> handler) { this.stream.drainHandler(handler); return this; }
private void testProducerDrain(TestContext ctx, RuntimeException failure) throws Exception { TestProducer mock = new TestProducer(); KafkaWriteStream<String, String> producer = ProducerTest.producer(Vertx.vertx(), mock); int sent = 0; while (!producer.writeQueueFull()) { producer.write(new ProducerRecord<>("the_topic", 0, 0L, "abc", "def")); sent++; } Async async = ctx.async(); producer.drainHandler(v -> { ctx.assertTrue(Context.isOnVertxThread()); ctx.assertTrue(Context.isOnEventLoopThread()); async.complete(); }); for (int i = 0;i < sent / 2;i++) { if (failure != null) { mock.assertErrorNext(failure); } else { mock.assertCompleteNext(); } } if (failure != null) { mock.assertErrorNext(failure); } else { mock.assertCompleteNext(); } assertFalse(producer.writeQueueFull()); }
private void testProducerDrain(TestContext ctx, RuntimeException failure) throws Exception { TestProducer mock = new TestProducer(); KafkaWriteStream<String, String> producer = ProducerTest.producer(Vertx.vertx(), mock); int sent = 0; while (!producer.writeQueueFull()) { producer.write(new ProducerRecord<>("the_topic", 0, 0L, "abc", "def")); sent++; } Async async = ctx.async(); producer.drainHandler(v -> { ctx.assertTrue(Context.isOnVertxThread()); ctx.assertTrue(Context.isOnEventLoopThread()); async.complete(); }); for (int i = 0;i < sent / 2;i++) { if (failure != null) { mock.assertErrorNext(failure); } else { mock.assertCompleteNext(); } } if (failure != null) { mock.assertErrorNext(failure); } else { mock.assertCompleteNext(); } assertFalse(producer.writeQueueFull()); }