Class MockConsumer<K,V>
java.lang.Object
org.apache.kafka.clients.consumer.MockConsumer<K,V>
- All Implemented Interfaces:
Closeable,AutoCloseable,Consumer<K,V>
A mock of the
Consumer interface you can use for testing code that uses Kafka. This class is not threadsafe . However, you can use the schedulePollTask(Runnable) method to write multithreaded tests where a driver thread waits for poll(Duration) to be called by a background thread and then can safely perform operations during a callback.Constructor Summary
ConstructorsConstructorDescriptionMockConsumer(String offsetResetStrategy) A mock consumer is instantiated by providing ConsumerConfig.AUTO_OFFSET_RESET_CONFIG value as the input.MockConsumer(OffsetResetStrategy offsetResetStrategy) Deprecated.Since 4.0.Method Summary
Modifier and TypeMethodDescriptionvoidaddRecord(ConsumerRecord<K, V> record) voidassign(Collection<TopicPartition> partitions) beginningOffsets(Collection<TopicPartition> partitions) beginningOffsets(Collection<TopicPartition> partitions, Duration timeout) clientInstanceId(Duration timeout) voidclose()voidDeprecated.voidclose(CloseOptions option) booleanclosed()voidvoidcommitAsync(Map<TopicPartition, OffsetAndMetadata> offsets, OffsetCommitCallback callback) voidcommitAsync(OffsetCommitCallback callback) voidvoidcommitSync(Duration timeout) voidcommitSync(Map<TopicPartition, OffsetAndMetadata> offsets) voidcommitSync(Map<TopicPartition, OffsetAndMetadata> offsets, Duration timeout) committed(Set<TopicPartition> partitions) committed(Set<TopicPartition> partitions, Duration timeout) currentLag(TopicPartition topicPartition) voidendOffsets(Collection<TopicPartition> partitions) endOffsets(Collection<TopicPartition> partitions, Duration timeout) voidvoidenforceRebalance(String reason) voidinjectTimeoutException(int injectTimeoutExceptionCounter) listTopics(Duration timeout) Map<MetricName, ? extends Metric> metrics()offsetsForTimes(Map<TopicPartition, Long> timestampsToSearch) offsetsForTimes(Map<TopicPartition, Long> timestampsToSearch, Duration timeout) partitionsFor(String topic) partitionsFor(String topic, Duration timeout) voidpause(Collection<TopicPartition> partitions) paused()longposition(TopicPartition partition) longposition(TopicPartition partition, Duration timeout) voidrebalance(Collection<TopicPartition> newAssignment) Simulate a rebalance event.voidvoidvoidresume(Collection<TopicPartition> partitions) voidvoidschedulePollTask(Runnable task) Schedule a task to be executed during a poll().voidseek(TopicPartition partition, long offset) voidseek(TopicPartition partition, OffsetAndMetadata offsetAndMetadata) voidseekToBeginning(Collection<TopicPartition> partitions) voidseekToEnd(Collection<TopicPartition> partitions) voidsetClientInstanceId(Uuid instanceId) voidsetMaxPollRecords(long maxPollRecords) Sets the maximum number of records returned in a single call topoll(Duration).voidsetOffsetsException(KafkaException exception) voidsetPollException(KafkaException exception) voidsetPositionException(KafkaException exception) booleanvoidsubscribe(Collection<String> topics) voidsubscribe(Collection<String> topics, ConsumerRebalanceListener listener) voidvoidsubscribe(Pattern pattern, ConsumerRebalanceListener listener) voidsubscribe(SubscriptionPattern pattern) voidsubscribe(SubscriptionPattern pattern, ConsumerRebalanceListener listener) voidvoidvoidupdateBeginningOffsets(Map<TopicPartition, Long> newOffsets) voidupdateDurationOffsets(Map<TopicPartition, Long> newOffsets) voidupdateEndOffsets(Map<TopicPartition, Long> newOffsets) voidupdatePartitions(String topic, List<PartitionInfo> partitions) voidwakeup()
Constructor Details
MockConsumer
Deprecated.Since 4.0. UseMockConsumer(String)instead.MockConsumer
A mock consumer is instantiated by providing ConsumerConfig.AUTO_OFFSET_RESET_CONFIG value as the input.- Parameters:
offsetResetStrategy- the offset reset strategy to use
Method Details
assignment
- Specified by:
assignmentin interfaceConsumer<K,V> - See Also:
rebalance
Simulate a rebalance event.subscription
subscribe
subscribe
subscribe
subscribe
subscribe
subscribe
registerMetricForSubscription
- Specified by:
registerMetricForSubscriptionin interfaceConsumer<K,V> - See Also:
unregisterMetricFromSubscription
- Specified by:
unregisterMetricFromSubscriptionin interfaceConsumer<K,V> - See Also:
assign
unsubscribe
public void unsubscribe()- Specified by:
unsubscribein interfaceConsumer<K,V> - See Also:
poll
addRecord
setMaxPollRecords
public void setMaxPollRecords(long maxPollRecords) Sets the maximum number of records returned in a single call topoll(Duration).- Parameters:
maxPollRecords- the max.poll.records.
setPollException
setOffsetsException
setPositionException
commitAsync
public void commitAsync(Map<TopicPartition, OffsetAndMetadata> offsets, OffsetCommitCallback callback) - Specified by:
commitAsyncin interfaceConsumer<K,V> - See Also:
commitSync
- Specified by:
commitSyncin interfaceConsumer<K,V> - See Also:
commitAsync
public void commitAsync()- Specified by:
commitAsyncin interfaceConsumer<K,V> - See Also:
commitAsync
- Specified by:
commitAsyncin interfaceConsumer<K,V> - See Also:
commitSync
public void commitSync()- Specified by:
commitSyncin interfaceConsumer<K,V> - See Also:
commitSync
- Specified by:
commitSyncin interfaceConsumer<K,V> - See Also:
commitSync
- Specified by:
commitSyncin interfaceConsumer<K,V> - See Also:
seek
seek
committed
committed
public Map<TopicPartition, OffsetAndMetadata> committed(Set<TopicPartition> partitions, Duration timeout) position
position
seekToBeginning
- Specified by:
seekToBeginningin interfaceConsumer<K,V> - See Also:
updateBeginningOffsets
seekToEnd
updateEndOffsets
updateDurationOffsets
disableTelemetry
public void disableTelemetry()injectTimeoutException
public void injectTimeoutException(int injectTimeoutExceptionCounter) - Parameters:
injectTimeoutExceptionCounter- use -1 for infinite
setClientInstanceId
clientInstanceId
Description copied from interface:Consumer- Specified by:
clientInstanceIdin interfaceConsumer<K,V>
metrics
partitionsFor
- Specified by:
partitionsForin interfaceConsumer<K,V> - See Also:
listTopics
- Specified by:
listTopicsin interfaceConsumer<K,V> - See Also:
updatePartitions
pause
resume
offsetsForTimes
public Map<TopicPartition, OffsetAndTimestamp> offsetsForTimes(Map<TopicPartition, Long> timestampsToSearch) - Specified by:
offsetsForTimesin interfaceConsumer<K,V> - See Also:
beginningOffsets
- Specified by:
beginningOffsetsin interfaceConsumer<K,V> - See Also:
endOffsets
- Specified by:
endOffsetsin interfaceConsumer<K,V> - See Also:
close
close
closed
public boolean closed()wakeup
close
schedulePollTask
Schedule a task to be executed during a poll(). One enqueued task will be executed perpoll(Duration)invocation. You can use this repeatedly to mock out multiple responses to poll invocations.- Parameters:
task- the task to be executed
scheduleNopPollTask
public void scheduleNopPollTask()paused
partitionsFor
- Specified by:
partitionsForin interfaceConsumer<K,V> - See Also:
listTopics
- Specified by:
listTopicsin interfaceConsumer<K,V> - See Also:
offsetsForTimes
public Map<TopicPartition, OffsetAndTimestamp> offsetsForTimes(Map<TopicPartition, Long> timestampsToSearch, Duration timeout) - Specified by:
offsetsForTimesin interfaceConsumer<K,V> - See Also:
beginningOffsets
public Map<TopicPartition, Long> beginningOffsets(Collection<TopicPartition> partitions, Duration timeout) - Specified by:
beginningOffsetsin interfaceConsumer<K,V> - See Also:
endOffsets
public Map<TopicPartition, Long> endOffsets(Collection<TopicPartition> partitions, Duration timeout) - Specified by:
endOffsetsin interfaceConsumer<K,V> - See Also:
currentLag
- Specified by:
currentLagin interfaceConsumer<K,V> - See Also:
groupMetadata
- Specified by:
groupMetadatain interfaceConsumer<K,V> - See Also:
enforceRebalance
public void enforceRebalance()- Specified by:
enforceRebalancein interfaceConsumer<K,V> - See Also:
enforceRebalance
- Specified by:
enforceRebalancein interfaceConsumer<K,V> - See Also:
shouldRebalance
public boolean shouldRebalance()resetShouldRebalance
public void resetShouldRebalance()lastPollTimeout
addedMetrics