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>