@Test(expected = IllegalStateException.class) public void testInvalidSequenceIncrement() { TransactionManager transactionManager = new TransactionManager(); transactionManager.incrementSequenceNumber(tp0, 3333); }
@Test public void testSequenceNumberOverflow() { TransactionManager transactionManager = new TransactionManager(); assertEquals((int) transactionManager.sequenceNumber(tp0), 0); transactionManager.incrementSequenceNumber(tp0, Integer.MAX_VALUE); assertEquals((int) transactionManager.sequenceNumber(tp0), Integer.MAX_VALUE); transactionManager.incrementSequenceNumber(tp0, 100); assertEquals((int) transactionManager.sequenceNumber(tp0), 99); transactionManager.incrementSequenceNumber(tp0, Integer.MAX_VALUE); assertEquals((int) transactionManager.sequenceNumber(tp0), 98); }
transactionManager.incrementSequenceNumber(batch.topicPartition, batch.recordCount); log.debug("Assigned producerId {} and producerEpoch {} to batch with base sequence " + "{} being sent to partition {}", producerIdAndEpoch.producerId,
@Test public void testDefaultSequenceNumber() { TransactionManager transactionManager = new TransactionManager(); assertEquals((int) transactionManager.sequenceNumber(tp0), 0); transactionManager.incrementSequenceNumber(tp0, 3); assertEquals((int) transactionManager.sequenceNumber(tp0), 3); }
@Test public void testShouldResetProducerStateAfterResolvingSequences() { // Create a TransactionManager without a transactionalId to test // shouldResetProducerStateAfterResolvingSequences. TransactionManager manager = new TransactionManager(logContext, null, transactionTimeoutMs, DEFAULT_RETRY_BACKOFF_MS); assertFalse(manager.shouldResetProducerStateAfterResolvingSequences()); TopicPartition tp0 = new TopicPartition("foo", 0); TopicPartition tp1 = new TopicPartition("foo", 1); assertEquals(Integer.valueOf(0), manager.sequenceNumber(tp0)); assertEquals(Integer.valueOf(0), manager.sequenceNumber(tp1)); manager.incrementSequenceNumber(tp0, 1); manager.incrementSequenceNumber(tp1, 1); manager.maybeUpdateLastAckedSequence(tp0, 0); manager.maybeUpdateLastAckedSequence(tp1, 0); manager.markSequenceUnresolved(tp0); manager.markSequenceUnresolved(tp1); assertFalse(manager.shouldResetProducerStateAfterResolvingSequences()); manager.maybeUpdateLastAckedSequence(tp0, 5); manager.incrementSequenceNumber(tp0, 1); manager.markSequenceUnresolved(tp0); manager.markSequenceUnresolved(tp1); assertTrue(manager.shouldResetProducerStateAfterResolvingSequences()); }
@Test public void testProducerIdReset() { TransactionManager transactionManager = new TransactionManager(); assertEquals((int) transactionManager.sequenceNumber(tp0), 0); transactionManager.incrementSequenceNumber(tp0, 3); assertEquals((int) transactionManager.sequenceNumber(tp0), 3); transactionManager.resetProducerId(); assertEquals((int) transactionManager.sequenceNumber(tp0), 0); }