X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2FApplicationTests.java;h=62906b356a28ed38c826f8e8c1f9f68dbcb0047b;hb=536c9c5320e52101bda5e1931bc84c5e0e0137f2;hp=6c25bcd7808409744fc28b7e742c14d37c23efac;hpb=c4fd031abdae00bdbd934216579f0a38ddd46783;p=demos%2Fkafka%2Ftraining diff --git a/src/test/java/de/juplo/kafka/ApplicationTests.java b/src/test/java/de/juplo/kafka/ApplicationTests.java index 6c25bcd..62906b3 100644 --- a/src/test/java/de/juplo/kafka/ApplicationTests.java +++ b/src/test/java/de/juplo/kafka/ApplicationTests.java @@ -78,7 +78,11 @@ class ApplicationTests @Order(1) // << The poistion pill is not skipped. Hence, this test must run first void commitsCurrentOffsetsOnSuccess() throws ExecutionException, InterruptedException { - send100Messages((key, counter) -> serialize(key, counter)); + send100Messages((partition, key, counter) -> + { + Bytes value = serialize(key, counter); + return new ProducerRecord<>(TOPIC, partition, key, value); + }); await("100 records received") .atMost(Duration.ofSeconds(30)) @@ -101,10 +105,13 @@ class ApplicationTests @Order(2) void commitsOffsetOfErrorForReprocessingOnError() { - send100Messages((key, counter) -> - counter == 77 - ? new Bytes(stringSerializer.serialize(TOPIC, "BOOM!")) - : serialize(key, counter)); + send100Messages((partition, key, counter) -> + { + Bytes value = counter == 77 + ? new Bytes(stringSerializer.serialize(TOPIC, "BOOM!")) + : serialize(key, counter); + return new ProducerRecord<>(TOPIC, partition, key, value); + }); await("Consumer failed") .atMost(Duration.ofSeconds(30)) @@ -186,7 +193,12 @@ class ApplicationTests } - void send100Messages(BiFunction messageGenerator) + public interface RecordGenerator + { + public ProducerRecord generate(int partition, String key, long counter); + } + + void send100Messages(RecordGenerator recordGenerator) { long i = 0; @@ -194,14 +206,8 @@ class ApplicationTests { for (int key = 0; key < 10; key++) { - Bytes value = messageGenerator.apply(key, ++i); - ProducerRecord record = - new ProducerRecord<>( - TOPIC, - partition, - Integer.toString(key%2), - value); + recordGenerator.generate(partition, Integer.toString(partition*10+key%2), ++i); record.headers().add("__TypeId__", "message".getBytes()); kafkaProducer.send(record, (metadata, e) -> @@ -228,10 +234,10 @@ class ApplicationTests } } - Bytes serialize(Integer key, Long value) + Bytes serialize(String key, Long value) { ClientMessage message = new ClientMessage(); - message.setClient(key.toString()); + message.setClient(key); message.setMessage(value.toString()); return new Bytes(valueSerializer.serialize(TOPIC, message)); }