Minor refactor, added composite receivers test
Project: http://git-wip-us.apache.org/repos/asf/ode-jacob/repo Commit: http://git-wip-us.apache.org/repos/asf/ode-jacob/commit/9841cc1c Tree: http://git-wip-us.apache.org/repos/asf/ode-jacob/tree/9841cc1c Diff: http://git-wip-us.apache.org/repos/asf/ode-jacob/diff/9841cc1c Branch: refs/heads/master Commit: 9841cc1c846d8efd60097aa460a0575546c811e8 Parents: c643a62 Author: Hadrian Zbarcea <[email protected]> Authored: Mon Jan 13 13:42:05 2014 -0500 Committer: Hadrian Zbarcea <[email protected]> Committed: Mon Jan 13 13:42:05 2014 -0500 ---------------------------------------------------------------------- .../org/apache/ode/jacob/oo/ProcessUtil.java | 2 +- .../apache/ode/jacob/oo/JacobChannelsTest.java | 98 +++++++++++++------- 2 files changed, 66 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/9841cc1c/src/main/java/org/apache/ode/jacob/oo/ProcessUtil.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/ode/jacob/oo/ProcessUtil.java b/src/main/java/org/apache/ode/jacob/oo/ProcessUtil.java index f32c0f0..b7e61a6 100644 --- a/src/main/java/org/apache/ode/jacob/oo/ProcessUtil.java +++ b/src/main/java/org/apache/ode/jacob/oo/ProcessUtil.java @@ -37,7 +37,7 @@ public final class ProcessUtil { + channel == null ? "<null>" : channel.getClass().toString()); } - public static CompositeProcess compose(ReceiveProcess process) { + public static CompositeProcess compose(ChannelListener process) { CompositeProcess result = new CompositeProcess(); return result.or(process); } http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/9841cc1c/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java b/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java index 5d277e5..c68c7f4 100644 --- a/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java +++ b/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java @@ -35,50 +35,82 @@ import org.junit.Test; public class JacobChannelsTest { - @Test - public void testMultipleSameTypeChannels() { + @Test + public void testMultipleSameTypeChannels() { JacobVPU vpu = new JacobVPU(); vpu.setContext(new ExecutionQueueImpl()); - Channel one = vpu.newChannel(Val.class, ""); - Channel two = vpu.newChannel(Val.class, ""); - CommChannel back1 = ChannelFactory.getBackend(one); - CommChannel back2 = ChannelFactory.getBackend(two); - Assert.assertEquals(back1.getType(), back2.getType()); - Assert.assertNotEquals(back1.getId(), back2.getId()); - } - - @Test - @SuppressWarnings("serial") - public void testMultipleReceiversSameChannel() { + Channel one = vpu.newChannel(Val.class, ""); + Channel two = vpu.newChannel(Val.class, ""); + CommChannel back1 = ChannelFactory.getBackend(one); + CommChannel back2 = ChannelFactory.getBackend(two); + Assert.assertEquals(back1.getType(), back2.getType()); + Assert.assertNotEquals(back1.getId(), back2.getId()); + } + + @Test + @SuppressWarnings("serial") + public void testMultipleReceiversSameChannel() { final JacobVPU vpu = new JacobVPU(); vpu.setContext(new ExecutionQueueImpl()); - + final List<String> result = new ArrayList<String>(); vpu.inject(new Runnable() { - public void run() { - Val v = (Val)vpu.newChannel(Val.class, ""); - object(receive(v, new Val() { - public void val(Object retVal) { - result.add("Hello " + retVal); - } - })); - object(receive(v, new Val() { - public void val(Object retVal) { - result.add("Bonjour " + retVal); - } - })); - - v.val("Hadrian"); - - } + public void run() { + Val v = (Val)vpu.newChannel(Val.class, ""); + object(receive(v, new Val() { + public void val(Object retVal) { + result.add("Hello " + retVal); + } + })); + object(receive(v, new Val() { + public void val(Object retVal) { + result.add("Bonjour " + retVal); + } + })); + + v.val("Hadrian"); + } }); while (vpu.execute()) { - // keep doing it... + // keep doing it... } // TODO: although it should probably be two // not really clear what pi calculus says about shared channels - Assert.assertEquals(1, result.size()); - } + Assert.assertEquals(1, result.size()); + } + + @Test + @SuppressWarnings("serial") + public void testCompositeReceiver() { + final JacobVPU vpu = new JacobVPU(); + vpu.setContext(new ExecutionQueueImpl()); + + final List<String> result = new ArrayList<String>(); + vpu.inject(new Runnable() { + public void run() { + Val v = (Val)vpu.newChannel(Val.class, ""); + object(ProcessUtil.compose(receive(v, new Val() { + public void val(Object retVal) { + result.add("Hello " + retVal); + } + })).or(receive(v, new Val() { + public void val(Object retVal) { + result.add("Bonjour " + retVal); + } + }))); + + v.val("Hadrian"); + } + }); + + while (vpu.execute()) { + // keep doing it... + } + // TODO: although it should probably be two + // not really clear what pi calculus says about shared channels + Assert.assertEquals(1, result.size()); + } + }
