From 6a5cc2795263a3020e3e39c882caffcc665eb3a9 Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Thu, 20 Nov 2014 13:55:26 +0100 Subject: [PATCH] Added tests for new signalhandling in merger --- .../stage/basic/merger/MergerTest.java | 70 ++++++++++++++++ .../stage/basic/merger/MergerTestingPipe.java | 81 +++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 src/test/java/teetime/stage/basic/merger/MergerTest.java create mode 100644 src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java 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..a5d235ad --- /dev/null +++ b/src/test/java/teetime/stage/basic/merger/MergerTest.java @@ -0,0 +1,70 @@ +package teetime.stage.basic.merger; + +import org.junit.Assert; +import org.junit.Test; + +import teetime.framework.InputPort; +import teetime.framework.signal.StartingSignal; +import teetime.framework.signal.TerminatingSignal; + +public class MergerTest { + + private Merger<Integer> merger; + private InputPort<Integer> firstPort; + private InputPort<Integer> secondPort; + private MergerTestingPipe testPipe; + + public void beforeSignalTesting() { + merger = new Merger<Integer>(); + + firstPort = merger.getNewInputPort(); + secondPort = merger.getNewInputPort(); + + testPipe = new MergerTestingPipe(); + merger.getOutputPort().setPipe(testPipe); + } + + @Test + public void testSameSignal() { + this.beforeSignalTesting(); + merger.onSignal(new StartingSignal(), firstPort); + Assert.assertFalse(testPipe.startSent()); + + merger.onSignal(new StartingSignal(), secondPort); + Assert.assertTrue(testPipe.startSent()); + } + + @Test + public void testDifferentSignals() { + this.beforeSignalTesting(); + merger.onSignal(new StartingSignal(), firstPort); + Assert.assertFalse(testPipe.startSent()); + + merger.onSignal(new TerminatingSignal(), secondPort); + Assert.assertFalse(testPipe.startSent()); + } + + @Test + public void testInterleavedSignals() { + this.beforeSignalTesting(); + merger.onSignal(new StartingSignal(), firstPort); + Assert.assertFalse(testPipe.startSent()); + Assert.assertFalse(testPipe.terminateSent()); + + merger.onSignal(new TerminatingSignal(), secondPort); + Assert.assertFalse(testPipe.startSent()); + Assert.assertFalse(testPipe.terminateSent()); + + merger.onSignal(new TerminatingSignal(), firstPort); + Assert.assertFalse(testPipe.startSent()); + Assert.assertTrue(testPipe.terminateSent()); + + merger.onSignal(new TerminatingSignal(), firstPort); + Assert.assertFalse(testPipe.startSent()); + Assert.assertTrue(testPipe.terminateSent()); + + merger.onSignal(new StartingSignal(), firstPort); + Assert.assertTrue(testPipe.startSent()); + Assert.assertTrue(testPipe.terminateSent()); + } +} diff --git a/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java b/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java new file mode 100644 index 00000000..e4c47289 --- /dev/null +++ b/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java @@ -0,0 +1,81 @@ +package teetime.stage.basic.merger; + +import teetime.framework.InputPort; +import teetime.framework.OutputPort; +import teetime.framework.pipe.IPipe; +import teetime.framework.signal.ISignal; +import teetime.framework.signal.StartingSignal; +import teetime.framework.signal.TerminatingSignal; + +public class MergerTestingPipe implements IPipe { + + private boolean startSent = false; + private boolean terminateSent = false; + + public MergerTestingPipe() {} + + @Override + public void sendSignal(final ISignal signal) { + if (signal.getClass().equals(StartingSignal.class)) { + this.startSent = true; + } else if (signal.getClass().equals(TerminatingSignal.class)) { + this.terminateSent = true; + } + } + + public boolean startSent() { + return this.startSent; + } + + public boolean terminateSent() { + return this.terminateSent; + } + + @Override + public boolean add(final Object element) { + return false; + } + + @Override + public boolean isEmpty() { + // TODO Auto-generated method stub + return false; + } + + @Override + public int size() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public Object removeLast() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Object readLast() { + // TODO Auto-generated method stub + return null; + } + + @Override + public InputPort<?> getTargetPort() { + // TODO Auto-generated method stub + return null; + } + + @Override + public <T> void connectPorts(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { + // TODO Auto-generated method stub + + } + + @Override + public void reportNewElement() { + // TODO Auto-generated method stub + + } + +} -- GitLab