package de.juplo.kafka;
import lombok.RequiredArgsConstructor;
-import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.common.TopicPartition;
+import java.util.List;
+import java.util.Map;
+
@RequiredArgsConstructor
-public abstract class TestRecordHandler<K, V> implements RecordHandler<K, V>
+public class TestRecordHandler implements RecordHandler
{
- private final RecordHandler<K, V> handler;
-
+ private final RecordHandler handler;
- public abstract void onNewRecord(ConsumerRecord<K, V> record);
+ Map<TopicPartition, Long> seenOffsets;
+ int receivedMessages;
- @Override
- public void accept(ConsumerRecord<K, V> record)
- {
- this.onNewRecord(record);
- handler.accept(record);
- }
- @Override
-
- public void beforeNextPoll()
+ public void onNewRecord(
+ String topic,
+ Integer partition,
+ Long offset,
+ Message messgage)
{
- handler.beforeNextPoll();
+ seenOffsets.put(new TopicPartition(topic, partition), offset);
+ receivedMessages++;
}
@Override
- public void onPartitionAssigned(TopicPartition tp)
+ public void addNumber(
+ String topic,
+ Integer partition,
+ Long offset,
+ String user,
+ MessageAddNumber message)
{
- handler.onPartitionAssigned(tp);
+ this.onNewRecord(topic, partition, offset, message);
+ handler.addNumber(topic, partition, offset, user, message);
}
@Override
- public void onPartitionRevoked(TopicPartition tp)
+ public void calculateSum(
+ String topic,
+ Integer partition,
+ Long offset,
+ String user,
+ MessageCalculateSum message)
{
- handler.onPartitionRevoked(tp);
+ this.onNewRecord(topic, partition, offset, message);
+ handler.calculateSum(topic, partition, offset, user, message);
}
}