CAMEL-6826: Use Mock Objects Instead of Live HazelcastInstances to Speed Up Testing
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f83c64b1 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f83c64b1 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f83c64b1 Branch: refs/heads/master Commit: f83c64b1c1a965a5736634b19edf8fc73f33a63a Parents: 999911e Author: James W. Carman <jcar...@apache.org> Authored: Wed Oct 9 01:10:41 2013 -0400 Committer: James W. Carman <jcar...@apache.org> Committed: Wed Oct 9 01:15:02 2013 -0400 ---------------------------------------------------------------------- .../instance/HazelcastInstanceConsumer.java | 4 +- .../HazelcastInstanceConsumerTest.java | 61 +++++++++++++++----- .../hazelcast/HazelcastListConsumerTest.java | 43 ++++++++++---- .../hazelcast/HazelcastMapConsumerTest.java | 61 +++++++++++++------- .../HazelcastMultimapConsumerTest.java | 51 ++++++++++------ .../hazelcast/HazelcastQueueConsumerTest.java | 48 ++++++++++----- 6 files changed, 190 insertions(+), 78 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceConsumer.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceConsumer.java index ef29696..664272a 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceConsumer.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceConsumer.java @@ -51,8 +51,8 @@ public class HazelcastInstanceConsumer extends DefaultConsumer { HazelcastComponentHelper.setListenerHeaders(exchange, HazelcastConstants.INSTANCE_LISTENER, action); // instance listener header values - exchange.getOut().setHeader(HazelcastConstants.INSTANCE_HOST, event.getMember().getInetSocketAddress().getHostName()); - exchange.getOut().setHeader(HazelcastConstants.INSTANCE_PORT, event.getMember().getInetSocketAddress().getPort()); + exchange.getIn().setHeader(HazelcastConstants.INSTANCE_HOST, event.getMember().getInetSocketAddress().getHostName()); + exchange.getIn().setHeader(HazelcastConstants.INSTANCE_PORT, event.getMember().getInetSocketAddress().getPort()); try { getProcessor().process(exchange); http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastInstanceConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastInstanceConsumerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastInstanceConsumerTest.java index 229ee19..b40f89394 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastInstanceConsumerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastInstanceConsumerTest.java @@ -16,12 +16,19 @@ */ package org.apache.camel.component.hazelcast; +import java.net.InetSocketAddress; import java.util.Map; import java.util.concurrent.TimeUnit; +import com.hazelcast.core.Cluster; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IList; +import com.hazelcast.core.ItemListener; +import com.hazelcast.core.Member; +import com.hazelcast.core.MembershipEvent; +import com.hazelcast.core.MembershipListener; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -29,19 +36,51 @@ import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Ignore; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; -public class HazelcastInstanceConsumerTest extends CamelTestSupport { +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class HazelcastInstanceConsumerTest extends HazelcastCamelTestSupport { + + @Mock + private IList<String> list; + + @Mock + private Cluster cluster; + + @Mock + private Member member; + + private ArgumentCaptor<MembershipListener> argument; + + @Override + @SuppressWarnings("unchecked") + protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) { + when(hazelcastInstance.getCluster()).thenReturn(cluster); + argument = ArgumentCaptor.forClass(MembershipListener.class); + when(cluster.addMembershipListener(argument.capture())).thenReturn("foo"); + } + + @Override + @SuppressWarnings("unchecked") + protected void verifyHazelcastInstance(HazelcastInstance hazelcastInstance) { + verify(hazelcastInstance).getCluster(); + verify(cluster).addMembershipListener(any(MembershipListener.class)); + } @Test - @Ignore("Causes further hazelast tests to fail") public void testAddInstance() throws InterruptedException { MockEndpoint added = getMockEndpoint("mock:added"); - added.setExpectedMessageCount(2); - - Hazelcast.newHazelcastInstance(null); - Hazelcast.newHazelcastInstance(null); + added.setExpectedMessageCount(1); + when(member.getInetSocketAddress()).thenReturn(new InetSocketAddress("foo.bar", 12345)); + MembershipEvent event = new MembershipEvent(cluster, member, MembershipEvent.MEMBER_ADDED, null); + argument.getValue().memberAdded(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); // check headers @@ -49,20 +88,18 @@ public class HazelcastInstanceConsumerTest extends CamelTestSupport { Map<String, Object> headers = ex.getIn().getHeaders(); this.checkHeaders(headers, HazelcastConstants.ADDED); - - Hazelcast.shutdownAll(); } @Test - @Ignore("Shutdown causes further hazelast tests to fail") public void testRemoveInstance() throws InterruptedException { MockEndpoint removed = getMockEndpoint("mock:removed"); removed.setExpectedMessageCount(1); - HazelcastInstance h1 = Hazelcast.newHazelcastInstance(null); + when(member.getInetSocketAddress()).thenReturn(new InetSocketAddress("foo.bar", 12345)); - h1.getLifecycleService().shutdown(); + MembershipEvent event = new MembershipEvent(cluster, member, MembershipEvent.MEMBER_REMOVED, null); + argument.getValue().memberRemoved(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); @@ -71,8 +108,6 @@ public class HazelcastInstanceConsumerTest extends CamelTestSupport { Map<String, Object> headers = ex.getIn().getHeaders(); this.checkHeaders(headers, HazelcastConstants.REMOVED); - - Hazelcast.shutdownAll(); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListConsumerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListConsumerTest.java index a1f858d..38cbf63 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListConsumerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListConsumerTest.java @@ -21,29 +21,49 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IList; +import com.hazelcast.core.ItemEvent; +import com.hazelcast.core.ItemEventType; +import com.hazelcast.core.ItemListener; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; -public class HazelcastListConsumerTest extends CamelTestSupport { +import static org.mockito.Mockito.*; - private List<String> list; +public class HazelcastListConsumerTest extends HazelcastCamelTestSupport { + + @Mock + private IList<String> list; + + private ArgumentCaptor<ItemListener> argument; + + @Override + @SuppressWarnings("unchecked") + protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) { + when(hazelcastInstance.<String>getList("foo")).thenReturn(list); + argument = ArgumentCaptor.forClass(ItemListener.class); + when(list.addItemListener(argument.capture(), eq(true))).thenReturn("foo"); + } @Override - protected void doPostSetup() throws Exception { - HazelcastComponent component = context().getComponent("hazelcast", HazelcastComponent.class); - HazelcastInstance hazelcastInstance = component.getHazelcastInstance(); - list = hazelcastInstance.getList("mm"); - list.clear(); + @SuppressWarnings("unchecked") + protected void verifyHazelcastInstance(HazelcastInstance hazelcastInstance) { + verify(hazelcastInstance).getList("foo"); + verify(list).addItemListener(any(ItemListener.class), eq(true)); } @Test + @SuppressWarnings("unchecked") public void add() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:added"); out.expectedMessageCount(1); - list.add("foo"); + final ItemEvent<String> event = new ItemEvent<String>("mm", ItemEventType.ADDED, "foo", null); + argument.getValue().itemAdded(event); assertMockEndpointsSatisfied(2000, TimeUnit.MILLISECONDS); @@ -51,12 +71,13 @@ public class HazelcastListConsumerTest extends CamelTestSupport { } @Test + @SuppressWarnings("unchecked") public void remove() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:removed"); out.expectedMessageCount(1); - list.add("foo"); - list.remove("foo"); + final ItemEvent<String> event = new ItemEvent<String>("mm", ItemEventType.REMOVED, "foo", null); + argument.getValue().itemRemoved(event); assertMockEndpointsSatisfied(2000, TimeUnit.MILLISECONDS); this.checkHeaders(out.getExchanges().get(0).getIn().getHeaders(), HazelcastConstants.REMOVED); @@ -67,7 +88,7 @@ public class HazelcastListConsumerTest extends CamelTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - from(String.format("hazelcast:%smm", HazelcastConstants.LIST_PREFIX)).log("object...").choice().when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED)) + from(String.format("hazelcast:%sfoo", HazelcastConstants.LIST_PREFIX)).log("object...").choice().when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED)) .log("...added").to("mock:added").when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED)).log("...removed").to("mock:removed").otherwise() .log("fail!"); } http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapConsumerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapConsumerTest.java index 8d3f604..6b697f5 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapConsumerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapConsumerTest.java @@ -19,60 +19,78 @@ package org.apache.camel.component.hazelcast; import java.util.Map; import java.util.concurrent.TimeUnit; +import com.hazelcast.core.EntryEvent; +import com.hazelcast.core.EntryEventType; +import com.hazelcast.core.EntryListener; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; -public class HazelcastMapConsumerTest extends CamelTestSupport { +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; - private IMap<Object, Object> map; +public class HazelcastMapConsumerTest extends HazelcastCamelTestSupport { + + @Mock + private IMap<Object,Object> map; + + private ArgumentCaptor<EntryListener> argument; @Override - protected void doPostSetup() throws Exception { - HazelcastComponent component = context().getComponent("hazelcast", HazelcastComponent.class); - HazelcastInstance hazelcastInstance = component.getHazelcastInstance(); - map = hazelcastInstance.getMap("foo"); - map.clear(); + @SuppressWarnings("unchecked") + protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) { + when(hazelcastInstance.getMap("foo")).thenReturn(map); + argument = ArgumentCaptor.forClass(EntryListener.class); + when(map.addEntryListener(argument.capture(), eq(true))).thenReturn("foo"); + } + + @Override + @SuppressWarnings("unchecked") + protected void verifyHazelcastInstance(HazelcastInstance hazelcastInstance) { + verify(hazelcastInstance).getMap("foo"); + verify(map).addEntryListener(any(EntryListener.class), eq(true)); } @Test + @SuppressWarnings("unchecked") public void testAdd() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:added"); out.expectedMessageCount(1); - map.put("4711", "my-foo"); - + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.ADDED.getType(), "4711", "my-foo"); + argument.getValue().entryAdded(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); this.checkHeaders(out.getExchanges().get(0).getIn().getHeaders(), HazelcastConstants.ADDED); } @Test + @SuppressWarnings("unchecked") public void testEnvict() throws InterruptedException { MockEndpoint out = super.getMockEndpoint("mock:envicted"); - out.expectedMessageCount(5); + out.expectedMessageCount(1); - map.put(1, "my-foo-1"); - map.put(2, "my-foo-2"); - map.put(3, "my-foo-3"); - map.put(4, "my-foo-4"); - map.put(5, "my-foo-5"); - map.put(6, "my-foo-6"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.EVICTED.getType(), "4711", "my-foo"); + argument.getValue().entryEvicted(event); assertMockEndpointsSatisfied(30000, TimeUnit.MILLISECONDS); } @Test + @SuppressWarnings("unchecked") public void testUpdate() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:updated"); out.expectedMessageCount(1); - map.put("4711", "my-foo"); - map.replace("4711", "my-fooo"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.UPDATED.getType(), "4711", "my-foo"); + argument.getValue().entryUpdated(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); @@ -80,12 +98,13 @@ public class HazelcastMapConsumerTest extends CamelTestSupport { } @Test + @SuppressWarnings("unchecked") public void testRemove() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:removed"); out.expectedMessageCount(1); - map.put("4711", "my-foo"); - map.remove("4711"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.REMOVED.getType(), "4711", "my-foo"); + argument.getValue().entryRemoved(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); this.checkHeaders(out.getExchanges().get(0).getIn().getHeaders(), HazelcastConstants.REMOVED); http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapConsumerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapConsumerTest.java index 1c379a8..55fc5bb 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapConsumerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapConsumerTest.java @@ -19,7 +19,11 @@ package org.apache.camel.component.hazelcast; import java.util.Map; import java.util.concurrent.TimeUnit; +import com.hazelcast.core.EntryEvent; +import com.hazelcast.core.EntryEventType; +import com.hazelcast.core.EntryListener; import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IMap; import com.hazelcast.core.MultiMap; import org.apache.camel.builder.RouteBuilder; @@ -28,27 +32,44 @@ import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Ignore; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; -public class HazelcastMultimapConsumerTest extends CamelTestSupport { +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; - private MultiMap<String, Object> map; +public class HazelcastMultimapConsumerTest extends HazelcastCamelTestSupport { + @Mock + private MultiMap<Object,Object> map; + + private ArgumentCaptor<EntryListener> argument; @Override - protected void doPostSetup() throws Exception { - HazelcastComponent component = context().getComponent("hazelcast", HazelcastComponent.class); - HazelcastInstance hazelcastInstance = component.getHazelcastInstance(); - this.map = hazelcastInstance.getMultiMap("mm"); - this.map.clear(); + @SuppressWarnings("unchecked") + protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) { + when(hazelcastInstance.getMultiMap("mm")).thenReturn(map); + argument = ArgumentCaptor.forClass(EntryListener.class); + when(map.addEntryListener(argument.capture(), eq(true))).thenReturn("foo"); } + @Override + @SuppressWarnings("unchecked") + protected void verifyHazelcastInstance(HazelcastInstance hazelcastInstance) { + verify(hazelcastInstance).getMultiMap("mm"); + verify(map).addEntryListener(any(EntryListener.class), eq(true)); + } @Test + @SuppressWarnings("unchecked") public void testAdd() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:added"); out.expectedMessageCount(1); - map.put("4711", "my-foo"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.ADDED.getType(), "4711", "my-foo"); + argument.getValue().entryAdded(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); @@ -58,18 +79,14 @@ public class HazelcastMultimapConsumerTest extends CamelTestSupport { /* * mail from talip (hazelcast) on 21.02.2011: MultiMap doesn't support eviction yet. We can and should add this feature. */ - @Ignore("See also http://code.google.com/p/hazelcast/issues/detail?id=577&q=eviction") @Test + @SuppressWarnings("unchecked") public void testEnvict() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:envicted"); out.expectedMessageCount(1); - map.put("1", "my-foo-1"); - map.put("2", "my-foo-2"); - map.put("3", "my-foo-3"); - map.put("4", "my-foo-4"); - map.put("5", "my-foo-5"); - map.put("6", "my-foo-6"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.EVICTED.getType(), "4711", "my-foo"); + argument.getValue().entryEvicted(event); assertMockEndpointsSatisfied(30000, TimeUnit.MILLISECONDS); } @@ -79,8 +96,8 @@ public class HazelcastMultimapConsumerTest extends CamelTestSupport { MockEndpoint out = getMockEndpoint("mock:removed"); out.expectedMessageCount(1); - map.put("4711", "foo"); - map.remove("4711"); + EntryEvent<Object,Object> event = new EntryEvent<Object,Object>("foo", null, EntryEventType.REMOVED.getType(), "4711", "my-foo"); + argument.getValue().entryRemoved(event); assertMockEndpointsSatisfied(5000, TimeUnit.MILLISECONDS); this.checkHeaders(out.getExchanges().get(0).getIn().getHeaders(), HazelcastConstants.REMOVED); http://git-wip-us.apache.org/repos/asf/camel/blob/f83c64b1/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastQueueConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastQueueConsumerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastQueueConsumerTest.java index 879929c..9290c03 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastQueueConsumerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastQueueConsumerTest.java @@ -22,35 +22,54 @@ import java.util.concurrent.TimeUnit; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IQueue; +import com.hazelcast.core.ItemEvent; +import com.hazelcast.core.ItemEventType; +import com.hazelcast.core.ItemListener; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.AfterClass; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; -public class HazelcastQueueConsumerTest extends CamelTestSupport { +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; - private BlockingQueue<String> map; +public class HazelcastQueueConsumerTest extends HazelcastCamelTestSupport { + + @Mock + private IQueue<String> queue; + + private ArgumentCaptor<ItemListener> argument; @Override - protected void doPostSetup() throws Exception { - HazelcastComponent component = context().getComponent("hazelcast", HazelcastComponent.class); - HazelcastInstance hazelcastInstance = component.getHazelcastInstance(); - this.map = hazelcastInstance.getQueue("mm"); - this.map.clear(); + @SuppressWarnings("unchecked") + protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) { + when(hazelcastInstance.<String>getQueue("foo")).thenReturn(queue); + argument = ArgumentCaptor.forClass(ItemListener.class); + when(queue.addItemListener(argument.capture(), eq(true))).thenReturn("foo"); } - @AfterClass - public static void tearDownClass() { - Hazelcast.shutdownAll(); + @Override + @SuppressWarnings("unchecked") + protected void verifyHazelcastInstance(HazelcastInstance hazelcastInstance) { + verify(hazelcastInstance).getQueue("foo"); + verify(queue).addItemListener(any(ItemListener.class), eq(true)); } @Test + @SuppressWarnings("unchecked") public void add() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:added"); out.expectedMessageCount(1); - map.put("foo"); + final ItemEvent<String> event = new ItemEvent<String>("foo", ItemEventType.ADDED, "foo", null); + argument.getValue().itemAdded(event); + assertMockEndpointsSatisfied(2000, TimeUnit.MILLISECONDS); @@ -58,12 +77,13 @@ public class HazelcastQueueConsumerTest extends CamelTestSupport { } @Test + @SuppressWarnings("unchecked") public void remove() throws InterruptedException { MockEndpoint out = getMockEndpoint("mock:removed"); out.expectedMessageCount(1); - map.put("foo"); - map.remove(); + final ItemEvent<String> event = new ItemEvent<String>("foo", ItemEventType.REMOVED, "foo", null); + argument.getValue().itemRemoved(event); assertMockEndpointsSatisfied(2000, TimeUnit.MILLISECONDS); this.checkHeaders(out.getExchanges().get(0).getIn().getHeaders(), HazelcastConstants.REMOVED); @@ -74,7 +94,7 @@ public class HazelcastQueueConsumerTest extends CamelTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - from(String.format("hazelcast:%smm", HazelcastConstants.QUEUE_PREFIX)).log("object...").choice().when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED)) + from(String.format("hazelcast:%sfoo", HazelcastConstants.QUEUE_PREFIX)).log("object...").choice().when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED)) .log("...added").to("mock:added").when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED)).log("...removed").to("mock:removed").otherwise() .log("fail!"); }