You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2015/06/11 17:18:22 UTC

[2/5] camel git commit: Camel-Hazelcast Improve Spring test for map

Camel-Hazelcast Improve Spring test for map


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9e506786
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9e506786
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9e506786

Branch: refs/heads/master
Commit: 9e506786eda92fea08780f9881e1a34cb7ef1724
Parents: 076585f
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Jun 11 10:57:00 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Jun 11 17:14:36 2015 +0200

----------------------------------------------------------------------
 .../hazelcast/HazelcastComponentHelper.java     |  1 +
 .../HazelcastMapProducerForSpringTest.java      | 74 +++++++++++++++++++-
 .../META-INF/spring/test-camel-context-map.xml  | 42 +++++++++++
 3 files changed, 115 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9e506786/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponentHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponentHelper.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponentHelper.java
index 9c8acc4..76de85d 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponentHelper.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponentHelper.java
@@ -93,6 +93,7 @@ public final class HazelcastComponentHelper {
         addMapping("update", HazelcastConstants.UPDATE_OPERATION);
         addMapping("query", HazelcastConstants.QUERY_OPERATION);
         addMapping("getAll", HazelcastConstants.GET_ALL_OPERATION);
+        addMapping("clear", HazelcastConstants.CLEAR_OPERATION);
 
         // multimap
         addMapping("removevalue", HazelcastConstants.REMOVEVALUE_OPERATION);

http://git-wip-us.apache.org/repos/asf/camel/blob/9e506786/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerForSpringTest.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerForSpringTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerForSpringTest.java
index cef3e4a..75e2667 100644
--- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerForSpringTest.java
+++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerForSpringTest.java
@@ -18,13 +18,17 @@ package org.apache.camel.component.hazelcast;
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
 import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.core.IMap;
-
 import com.hazelcast.query.SqlPredicate;
-import org.apache.camel.component.hazelcast.testutil.Dummy;
 
+import org.apache.camel.component.hazelcast.testutil.Dummy;
 import org.junit.After;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -32,6 +36,7 @@ import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anySet;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -105,5 +110,70 @@ public class HazelcastMapProducerForSpringTest extends HazelcastCamelSpringTestS
         assertNotNull(b1);
         assertEquals(2, b1.size());
     }
+    
+    @Test
+    public void testPutIfAbsent() throws InterruptedException {
+        Map<String, Object> headers = new HashMap<String, Object>();
+        headers.put(HazelcastConstants.OBJECT_ID, "4711");
+        template.sendBodyAndHeaders("direct:putIfAbsent", "replaced", headers);
+        verify(map).putIfAbsent("4711", "replaced");
+    }
+    
+    @Test
+    public void testPutIfAbsentWithTtl() throws InterruptedException {
+        Map<String, Object> headers = new HashMap<String, Object>();
+        headers.put(HazelcastConstants.OBJECT_ID, "4711");
+        headers.put(HazelcastConstants.TTL_VALUE, new Long(1));
+        headers.put(HazelcastConstants.TTL_UNIT, TimeUnit.MINUTES);
+        template.sendBodyAndHeaders("direct:putIfAbsent", "replaced", headers);
+        verify(map).putIfAbsent("4711", "replaced", new Long(1), TimeUnit.MINUTES);
+    }
+    
+    @Test
+    public void testGetAllEmptySet() {
+        Set<Object> l = new HashSet<Object>();
+        Map t = new HashMap();
+        t.put("key1", "value1");
+        t.put("key2", "value2");
+        t.put("key3", "value3");
+        when(map.getAll(anySet())).thenReturn(t);
+        template.sendBodyAndHeader("direct:getAll", null, HazelcastConstants.OBJECT_ID, l);
+        String body = consumer.receiveBody("seda:out", 5000, String.class);
+        verify(map).getAll(l);
+        assertEquals("{key3=value3, key2=value2, key1=value1}", body);
+    }
 
+    @Test
+    public void testGetAllOnlyOneKey() {
+        Set<Object> l = new HashSet<Object>();
+        l.add("key1");
+        Map t = new HashMap();
+        t.put("key1", "value1");
+        when(map.getAll(l)).thenReturn(t);
+        template.sendBodyAndHeader("direct:getAll", null, HazelcastConstants.OBJECT_ID, l);
+        String body = consumer.receiveBody("seda:out", 5000, String.class);
+        verify(map).getAll(l);
+        assertEquals("{key1=value1}", body);
+    }
+    
+    @Test
+    public void testClear() throws InterruptedException {
+        template.sendBody("direct:clear", "test");
+        verify(map).clear();
+    }
+    
+    @Test
+    public void testEvict() throws InterruptedException {
+        Map<String, Object> headers = new HashMap<String, Object>();
+        headers.put(HazelcastConstants.OBJECT_ID, "4711");
+        template.sendBodyAndHeaders("direct:evict", "", headers);
+        verify(map).evict("4711");
+    }
+    
+    @Test
+    public void testEvictAll() throws InterruptedException {
+        Map<String, Object> headers = new HashMap<String, Object>();
+        template.sendBodyAndHeaders("direct:evictAll", "", headers);
+        verify(map).evictAll();
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/9e506786/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-map.xml
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-map.xml b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-map.xml
index ee3431e..359328a 100644
--- a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-map.xml
+++ b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-map.xml
@@ -64,7 +64,49 @@
 			<to uri="hazelcast:map:foo" />
 			<to uri="seda:out" />
 		</route>
+		
+		<route>
+			<from uri="direct:putIfAbsent" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>putIfAbsent</constant>
+			</setHeader>
+			<to uri="hazelcast:map:foo" />
+		</route>
+
+		<route>
+			<from uri="direct:getAll" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>getAll</constant>
+			</setHeader>
+			<to uri="hazelcast:map:foo" />
+			<to uri="seda:out" />
+		</route>
+	
+		<route>
+			<from uri="direct:clear" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>clear</constant>
+			</setHeader>
+			<to uri="hazelcast:map:foo" />
+		</route>
+		
+		<route>
+			<from uri="direct:evict" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>evict</constant>
+			</setHeader>
+			<to uri="hazelcast:map:foo" />
+			<to uri="seda:out" />
+		</route>
 
+		<route>
+			<from uri="direct:evictAll" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>evictAll</constant>
+			</setHeader>
+			<to uri="hazelcast:map:foo" />
+			<to uri="seda:out" />
+		</route>		
 	</camelContext>
 
 </beans>