From 5516cbc0616a7f731740b1155babbde4d1e7aee0 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Thu, 18 Dec 2014 12:26:04 +0100 Subject: [PATCH] Added test for the merger --- .../basic/distributor/DistributorTest.java | 2 +- .../stage/basic/merger/MergerTest.java | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/test/java/teetime/stage/basic/merger/MergerTest.java diff --git a/src/test/java/teetime/stage/basic/distributor/DistributorTest.java b/src/test/java/teetime/stage/basic/distributor/DistributorTest.java index 3ea966db..58116c47 100644 --- a/src/test/java/teetime/stage/basic/distributor/DistributorTest.java +++ b/src/test/java/teetime/stage/basic/distributor/DistributorTest.java @@ -29,7 +29,7 @@ public class DistributorTest { private CollectorSink<Integer> sndCollector; @Before - public void initializeRecordSimplificator() throws Exception { + public void initializeDistributor() throws Exception { this.distributorUnderTest = new Distributor<Integer>(); this.fstCollector = new CollectorSink<Integer>(); this.sndCollector = new CollectorSink<Integer>(); diff --git a/src/test/java/teetime/stage/basic/merger/MergerTest.java b/src/test/java/teetime/stage/basic/merger/MergerTest.java new file mode 100644 index 00000000..0ea68fc1 --- /dev/null +++ b/src/test/java/teetime/stage/basic/merger/MergerTest.java @@ -0,0 +1,60 @@ +package teetime.stage.basic.merger; + +import static org.hamcrest.Matchers.contains; +import static org.junit.Assert.assertThat; + +import org.junit.Before; +import org.junit.Test; + +import teetime.framework.pipe.IPipeFactory; +import teetime.framework.pipe.SingleElementPipeFactory; +import teetime.stage.CollectorSink; +import teetime.stage.InitialElementProducer; + +/** + * @author Nils Christian Ehmke + * + * @since 1.0 + */ +public class MergerTest { + + private Merger<Integer> mergerUnderTest; + private CollectorSink<Integer> collector; + private InitialElementProducer<Integer> fstProducer; + private InitialElementProducer<Integer> sndProducer; + + @Before + public void initializeMerger() throws Exception { + this.mergerUnderTest = new Merger<Integer>(); + this.collector = new CollectorSink<Integer>(); + this.fstProducer = new InitialElementProducer<Integer>(1, 2, 3); + this.sndProducer = new InitialElementProducer<Integer>(4, 5, 6); + + final IPipeFactory pipeFactory = new SingleElementPipeFactory(); + pipeFactory.create(this.fstProducer.getOutputPort(), this.mergerUnderTest.getNewInputPort()); + pipeFactory.create(this.sndProducer.getOutputPort(), this.mergerUnderTest.getNewInputPort()); + pipeFactory.create(this.mergerUnderTest.getOutputPort(), this.collector.getInputPort()); + + mergerUnderTest.onStarting(); + } + + @Test + public void roundRobinShouldWork() { + mergerUnderTest.setStrategy(new RoundRobinStrategy()); + + this.fstProducer.executeWithPorts(); + this.sndProducer.executeWithPorts(); + + assertThat(this.collector.getElements(), contains(1, 2, 3, 4, 5, 6)); + } + + @Test + public void roundRobinWithSingleProducerShouldWork() { + mergerUnderTest.setStrategy(new RoundRobinStrategy()); + + this.fstProducer.executeWithPorts(); + + assertThat(this.collector.getElements(), contains(1, 2, 3)); + } + +} -- GitLab