diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java index d29d675ead1e5f47c71db3d2a43faba931dfd455..86f42f8ba140c1b1bdd503b98e5ce831330416f1 100644 --- a/src/main/java/teetime/stage/InitialElementProducer.java +++ b/src/main/java/teetime/stage/InitialElementProducer.java @@ -19,23 +19,24 @@ import java.util.Arrays; import teetime.framework.AbstractProducerStage; -public final class InitialElementProducer<T> extends AbstractProducerStage<T> { +public class InitialElementProducer<T> extends AbstractProducerStage<T> { - private Iterable<T> elements; + private final Iterable<T> elements; public InitialElementProducer(final T... elements) { - this.elements = Arrays.asList(elements); + this(Arrays.asList(elements)); } public InitialElementProducer(final Iterable<T> elements) { + if (elements == null) { + throw new IllegalArgumentException("The given iterable must not be null"); + } this.elements = elements; } @Override public void onStarting() throws Exception { - if (elements == null) { - throw new IllegalArgumentException("The given iterable must not be null"); - } + super.onStarting(); } @@ -47,12 +48,4 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> { this.terminate(); } - public void setIter(final T... elements) { - this.elements = Arrays.asList(elements); - } - - public void setIter(final Iterable<T> elements) { - this.elements = elements; - } - } diff --git a/src/test/java/teetime/stage/InitialElementProducerTest.java b/src/test/java/teetime/stage/InitialElementProducerTest.java index ad9e03b4bff52807ebac4d2419001606af0149ae..9c96b14f42da3c9f46bcb22fdefd59b950e36159 100644 --- a/src/test/java/teetime/stage/InitialElementProducerTest.java +++ b/src/test/java/teetime/stage/InitialElementProducerTest.java @@ -31,45 +31,37 @@ import org.junit.Test; */ public class InitialElementProducerTest { - private InitialElementProducer<Integer> producer; - - // @Before - public void initializeProducer() { - producer = new InitialElementProducer<Integer>(); - } - @Test public void producerShouldByDefaultSendNothing() { - initializeProducer(); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); assertThat(results, is(empty())); } - @Test - public void testSetIterArray() { - initializeProducer(); - producer.setIter(new Integer[] { 1, 2, 3 }); - List<Integer> results = new ArrayList<Integer>(); - - test(producer).and().receive(results).from(producer.getOutputPort()).start(); - assertThat(results, contains(1, 2, 3)); - } - - @Test - public void testSetIterVarargs() { - initializeProducer(); - producer.setIter(1, 2, 3); - List<Integer> results = new ArrayList<Integer>(); - - test(producer).and().receive(results).from(producer.getOutputPort()).start(); - assertThat(results, contains(1, 2, 3)); - } + // @Test + // public void testSetIterArray() { + // InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); + // + // List<Integer> results = new ArrayList<Integer>(); + // + // test(producer).and().receive(results).from(producer.getOutputPort()).start(); + // assertThat(results, contains(1, 2, 3)); + // } + // + // @Test + // public void testSetIterVarargs() { + // InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3); + // List<Integer> results = new ArrayList<Integer>(); + // + // test(producer).and().receive(results).from(producer.getOutputPort()).start(); + // assertThat(results, contains(1, 2, 3)); + // } @Test public void instantiateWithArray() { - producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); @@ -78,7 +70,7 @@ public class InitialElementProducerTest { @Test public void instantiateWithVarargs() { - producer = new InitialElementProducer<Integer>(1, 2, 3); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); @@ -91,7 +83,7 @@ public class InitialElementProducerTest { testIntegers.add(1); testIntegers.add(2); testIntegers.add(3); - producer = new InitialElementProducer<Integer>(testIntegers); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(testIntegers); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start();