/
YuriyMB
/
Kafka
Обзор
Документация
Войти
/
YuriyMB
/
Kafka
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
testing/src/test/java/sbp/school/consumers/DemoConsumerTest.java
47 строк
2 KB
trv
Added examples for theory
10 окт 2025, 22:55
10 окт 2025, 22:55
3c41313
Код
Авторство
О чём код?
package sbp.school.consumers; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.MockConsumer; import org.apache.kafka.clients.consumer.OffsetResetStrategy; import org.apache.kafka.common.TopicPartition; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.HashMap; import static org.junit.jupiter.api.Assertions.*; class DemoConsumerTest { MockConsumer<String, String> mockConsumer; DemoConsumer demoConsumer; @BeforeEach void setUp() { mockConsumer = new MockConsumer<>(OffsetResetStrategy.EARLIEST); demoConsumer = new DemoConsumer(mockConsumer); } @Test void consume() { ConsumerRecord<String, String> testRecord = new ConsumerRecord<>("test-topic", 0, 0, "key", "value"); this.mockConsumer.schedulePollTask(() -> { this.mockConsumer.rebalance(Collections.singletonList(new TopicPartition("test-topic", 0))); this.mockConsumer.addRecord(testRecord); }); this.mockConsumer.schedulePollTask(() -> this.demoConsumer.stop()); HashMap<TopicPartition, Long> startOffsets = new HashMap<>(); TopicPartition topicPartition = new TopicPartition("test-topic", 0); startOffsets.put(topicPartition, 0L); this.mockConsumer.updateBeginningOffsets(startOffsets); this.demoConsumer.consume(); Assertions.assertEquals(testRecord.value(), this.demoConsumer.getValue(testRecord.key())); } }