You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by jc...@apache.org on 2013/10/09 07:15:16 UTC

[2/2] git commit: CAMEL-6826: Use Mock Objects Instead of Live HazelcastInstances to Speed Up Testing

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 <jc...@apache.org>
Authored: Wed Oct 9 01:10:41 2013 -0400
Committer: James W. Carman <jc...@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!");
             }