package com.ldbc.driver.generator; import org.junit.Before; import org.junit.Test; import java.util.Iterator; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; public class RepeatingGeneratorTest { GeneratorFactory generators; @Before public void initGenerators() { generators = new GeneratorFactory(new RandomDataGeneratorFactory(42L)); } @Test public void shouldExhaustImmediatelyIfSourceGeneratorIsEmpty() { // Given Iterator<Integer> sourceGenerator = generators.identity(); // When Iterator<Integer> repeatingGenerator = generators.repeating(sourceGenerator); // Then assertThat(repeatingGenerator.hasNext(), is(false)); } @Test public void shouldLoopIndefinitely() { // Given Iterator<Integer> sourceGenerator = generators.identity(1, 2, 3); // When Iterator<Integer> repeatingGenerator = generators.repeating(sourceGenerator); // Then assertThat(repeatingGenerator.next(), is(1)); assertThat(repeatingGenerator.next(), is(2)); assertThat(repeatingGenerator.next(), is(3)); assertThat(repeatingGenerator.next(), is(1)); assertThat(repeatingGenerator.next(), is(2)); assertThat(repeatingGenerator.next(), is(3)); assertThat(repeatingGenerator.next(), is(1)); } }