@Test public void shouldIncreaseBatchCountAfterEachBatch() { systemUnderTest.setBatchSize(2); systemUnderTest.process("1"); systemUnderTest.process("2"); systemUnderTest.process("3"); systemUnderTest.process("4"); assertThat(systemUnderTest.getBatchCount()) .isEqualTo(2); }
@Test public void shouldIncreaseObjectCounterAfterEachObject() { systemUnderTest.setBatchSize(3); systemUnderTest.process("1"); systemUnderTest.process("2"); assertThat(systemUnderTest.getObjectCount()) .isEqualTo(2); }
@Override public void process(final T obj) { getReceiver().process(obj); objectCount += 1; if (objectCount >= batchSize) { batchCount += 1; objectCount = 0; getReceiver().resetStream(); } }
@Test public void shouldEmitResetStreamEventAfterUpdatingCounts() { systemUnderTest.setBatchSize(2); systemUnderTest.setReceiver(new DefaultObjectReceiver<String>() { @Override public void resetStream() { assertThat(systemUnderTest.getObjectCount()).isZero(); assertThat(systemUnderTest.getBatchCount()).isEqualTo(1); } }); systemUnderTest.process("1"); systemUnderTest.process("2"); }
@Test public void shouldResetCountsOnResetStream() { systemUnderTest.setBatchSize(2); systemUnderTest.process("1"); systemUnderTest.process("2"); systemUnderTest.process("3"); systemUnderTest.resetStream(); assertThat(systemUnderTest.getBatchCount()) .isZero(); assertThat(systemUnderTest.getObjectCount()) .isZero(); }
@Before public void setupSystemUnderTest() { systemUnderTest = new ObjectBatchResetter<>(); systemUnderTest.setReceiver(receiver); }
@Override public void resetStream() { assertThat(systemUnderTest.getObjectCount()).isZero(); assertThat(systemUnderTest.getBatchCount()).isEqualTo(1); } });
@Test public void shouldEmitResetStreamAfterBatchSizeObjects() { systemUnderTest.setBatchSize(3); systemUnderTest.process("1"); systemUnderTest.process("2"); systemUnderTest.process("3"); InOrder ordered = inOrder(receiver); ordered.verify(receiver).process("1"); ordered.verify(receiver).process("2"); ordered.verify(receiver).process("3"); ordered.verify(receiver).resetStream(); verifyNoMoreInteractions(receiver); }
@Test public void shouldResetObjectCountOnBatchCompletion() { systemUnderTest.setBatchSize(2); systemUnderTest.process("1"); systemUnderTest.process("2"); assertThat(systemUnderTest.getObjectCount()) .isZero(); }