@Test public void shouldStartSingleReaderThatStopsAutomatically() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new MockReader("r2", records())) .completionMessage("Stopped the r2 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); assertThat(reader.poll()).isNull(); // cause the mock reader to stop itself assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }
reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); records = reader.poll(); assertThat(records).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5);
@Test public void shouldStartAndStopReaderThatContinuesProducingItsRecordsAfterBeingStopped() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new CompletingMockReader("r5", records())) .completionMessage("Stopped the r5 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); // Manually stop this reader, and it will continue returning all of its 5 record lists ... reader.stop(); assertThat(reader.state()).isEqualTo(State.STOPPING); // Read the remaining records ... assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); assertThat(reader.poll()).isNull(); // The reader has no more records, so it should now be stopped ... assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }
@Test public void shouldStartAndStopSingleReaderBeforeReaderStopsItself() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new MockReader("r1", records())) .completionMessage("Stopped the r1 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); reader.stop(); assertThat(reader.state()).isEqualTo(State.STOPPING); assertThat(reader.poll()).isNull(); assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }
@Test public void shouldStartSingleReaderThatStopsAutomatically() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new MockReader("r2", records())) .completionMessage("Stopped the r2 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); assertThat(reader.poll()).isNull(); // cause the mock reader to stop itself assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }
reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); records = reader.poll(); assertThat(records).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5);
@Test public void shouldStartAndStopReaderThatContinuesProducingItsRecordsAfterBeingStopped() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new CompletingMockReader("r5", records())) .completionMessage("Stopped the r5 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); // Manually stop this reader, and it will continue returning all of its 5 record lists ... reader.stop(); assertThat(reader.state()).isEqualTo(State.STOPPING); // Read the remaining records ... assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); assertThat(reader.poll()).isSameAs(RL5); assertThat(reader.poll()).isNull(); // The reader has no more records, so it should now be stopped ... assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }
@Test public void shouldStartAndStopSingleReaderBeforeReaderStopsItself() throws InterruptedException { reader = new ChainedReader.Builder() .addReader(new MockReader("r1", records())) .completionMessage("Stopped the r1 reader") .build(); reader.start(); assertThat(reader.state()).isEqualTo(State.RUNNING); assertThat(reader.poll()).isSameAs(RL1); assertThat(reader.poll()).isSameAs(RL2); assertThat(reader.poll()).isSameAs(RL3); assertThat(reader.poll()).isSameAs(RL4); reader.stop(); assertThat(reader.state()).isEqualTo(State.STOPPING); assertThat(reader.poll()).isNull(); assertThat(reader.state()).isEqualTo(State.STOPPED); assertPollReturnsNoMoreRecords(); }