From f45875f628e88d37c9e070d3968d630d5f715570 Mon Sep 17 00:00:00 2001 From: Jennifer Hickey Date: Thu, 14 Mar 2013 16:39:46 -0700 Subject: [PATCH] Add missing client types to parameterized tests --- .../data/redis/listener/PubSubTestParams.java | 17 +++- .../redis/support/BoundKeyOperationsTest.java | 13 +++- .../data/redis/support/BoundKeyParams.java | 77 +++++++++++++++---- .../support/atomic/AtomicCountersParam.java | 41 ++++++++-- .../support/atomic/RedisAtomicTests.java | 53 +++++++++++++ .../collections/AbstractRedisMapTests.java | 3 + .../collections/CollectionTestParams.java | 2 +- .../support/collections/RedisMapTests.java | 71 +++++++++++++++-- 8 files changed, 246 insertions(+), 31 deletions(-) diff --git a/src/test/java/org/springframework/data/redis/listener/PubSubTestParams.java b/src/test/java/org/springframework/data/redis/listener/PubSubTestParams.java index 3bd14289e..1a683a11b 100644 --- a/src/test/java/org/springframework/data/redis/listener/PubSubTestParams.java +++ b/src/test/java/org/springframework/data/redis/listener/PubSubTestParams.java @@ -23,6 +23,7 @@ import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; +import org.springframework.data.redis.connection.srp.SrpConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.support.collections.ObjectFactory; @@ -31,6 +32,7 @@ import org.springframework.data.redis.support.collections.StringObjectFactory; /** * @author Costin Leau + * @author Jennifer Hickey */ public class PubSubTestParams { @@ -75,10 +77,23 @@ public class PubSubTestParams { personTemplateLtc.setConnectionFactory(lettuceConnFactory); personTemplateLtc.afterPropertiesSet(); + // SRP + SrpConnectionFactory srpConnFactory = new SrpConnectionFactory(); + srpConnFactory.setPort(SettingsUtils.getPort()); + srpConnFactory.setHostName(SettingsUtils.getHost()); + srpConnFactory.afterPropertiesSet(); + + RedisTemplate stringTemplateSrp = new StringRedisTemplate(srpConnFactory); + RedisTemplate personTemplateSrp = new RedisTemplate(); + personTemplateSrp.setConnectionFactory(srpConnFactory); + personTemplateSrp.afterPropertiesSet(); + + // JRedis does not support pub/sub return Arrays.asList(new Object[][] { { stringFactory, stringTemplate }, { personFactory, personTemplate }, { stringFactory, stringTemplateRJC }, { personFactory, personTemplateRJC }, - { stringFactory, stringTemplateLtc }, { personFactory, personTemplateLtc } + { stringFactory, stringTemplateLtc }, { personFactory, personTemplateLtc }, + { stringFactory, stringTemplateSrp }, { personFactory, personTemplateSrp } }); } } diff --git a/src/test/java/org/springframework/data/redis/support/BoundKeyOperationsTest.java b/src/test/java/org/springframework/data/redis/support/BoundKeyOperationsTest.java index fd94973d5..44815f321 100644 --- a/src/test/java/org/springframework/data/redis/support/BoundKeyOperationsTest.java +++ b/src/test/java/org/springframework/data/redis/support/BoundKeyOperationsTest.java @@ -15,7 +15,10 @@ */ package org.springframework.data.redis.support; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; import java.util.Collection; import java.util.concurrent.TimeUnit; @@ -27,12 +30,14 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.springframework.data.redis.ConnectionFactoryTracker; +import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; import org.springframework.data.redis.core.BoundKeyOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.support.collections.ObjectFactory; /** * @author Costin Leau + * @author Jennifer Hickey */ @RunWith(Parameterized.class) public class BoundKeyOperationsTest { @@ -72,6 +77,7 @@ public class BoundKeyOperationsTest { keyOps.rename(key); assertEquals(key, keyOps.getKey()); } + @Test public void testExpire() throws Exception { assertEquals(Long.valueOf(-1), keyOps.getExpire()); @@ -83,6 +89,7 @@ public class BoundKeyOperationsTest { @Test public void testPersist() throws Exception { + assumeTrue(!isJredis()); keyOps.persist(); assertEquals(Long.valueOf(-1), keyOps.getExpire()); if (keyOps.expire(10, TimeUnit.SECONDS)) { @@ -91,4 +98,8 @@ public class BoundKeyOperationsTest { keyOps.persist(); assertEquals(-1, keyOps.getExpire().longValue()); } + + private boolean isJredis() { + return template.getConnectionFactory() instanceof JredisConnectionFactory; + } } \ No newline at end of file diff --git a/src/test/java/org/springframework/data/redis/support/BoundKeyParams.java b/src/test/java/org/springframework/data/redis/support/BoundKeyParams.java index e8c247c78..f7460247b 100644 --- a/src/test/java/org/springframework/data/redis/support/BoundKeyParams.java +++ b/src/test/java/org/springframework/data/redis/support/BoundKeyParams.java @@ -1,12 +1,12 @@ /* * Copyright 2011-2013 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,6 +21,9 @@ import java.util.Collection; import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; +import org.springframework.data.redis.connection.srp.SrpConnectionFactory; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.support.atomic.RedisAtomicInteger; import org.springframework.data.redis.support.atomic.RedisAtomicLong; @@ -32,37 +35,83 @@ import org.springframework.data.redis.support.collections.StringObjectFactory; /** * @author Costin Leau + * @author Jennifer Hickey */ public class BoundKeyParams { public static Collection testParams() { - // create Jedis Factory + // Jedis JedisConnectionFactory jedisConnFactory = new JedisConnectionFactory(); jedisConnFactory.setPort(SettingsUtils.getPort()); jedisConnFactory.setHostName(SettingsUtils.getHost()); jedisConnFactory.afterPropertiesSet(); - // jredis factory + StringRedisTemplate templateJS = new StringRedisTemplate(jedisConnFactory); + DefaultRedisMap mapJS = new DefaultRedisMap("bound:key:map", templateJS); + DefaultRedisSet setJS = new DefaultRedisSet("bound:key:set", templateJS); + RedisList list = new DefaultRedisList("bound:key:list", templateJS); + + // JRedis JredisConnectionFactory jredisConnFactory = new JredisConnectionFactory(); - jredisConnFactory.setUsePool(true); jredisConnFactory.setPort(SettingsUtils.getPort()); jredisConnFactory.setHostName(SettingsUtils.getHost()); jredisConnFactory.afterPropertiesSet(); - StringRedisTemplate templateJS = new StringRedisTemplate(jedisConnFactory); StringRedisTemplate templateJR = new StringRedisTemplate(jredisConnFactory); + DefaultRedisMap mapJR = new DefaultRedisMap("bound:key:mapJR", templateJR); + // Skip list and set. Rename in Collections uses Redis tx, not supported by JRedis + + // Lettuce + LettuceConnectionFactory lettuceConnFactory = new LettuceConnectionFactory(); + lettuceConnFactory.setPort(SettingsUtils.getPort()); + lettuceConnFactory.setHostName(SettingsUtils.getHost()); + lettuceConnFactory.afterPropertiesSet(); + + StringRedisTemplate templateLT = new StringRedisTemplate(lettuceConnFactory); + DefaultRedisMap mapLT = new DefaultRedisMap("bound:key:mapLT", templateLT); + DefaultRedisSet setLT = new DefaultRedisSet("bound:key:setLT", templateLT); + RedisList listLT = new DefaultRedisList("bound:key:listLT", templateLT); + + // SRP + SrpConnectionFactory srpConnFactory = new SrpConnectionFactory(); + srpConnFactory.setPort(SettingsUtils.getPort()); + srpConnFactory.setHostName(SettingsUtils.getHost()); + srpConnFactory.afterPropertiesSet(); + + StringRedisTemplate templateSRP = new StringRedisTemplate(srpConnFactory); + DefaultRedisMap mapSRP = new DefaultRedisMap("bound:key:mapSRP", templateSRP); + DefaultRedisSet setSRP = new DefaultRedisSet("bound:key:setSRP", templateSRP); + RedisList listSRP = new DefaultRedisList("bound:key:listSRP", templateSRP); + + + // RJC + RjcConnectionFactory rjcConnFactory = new RjcConnectionFactory(); + rjcConnFactory.setPort(SettingsUtils.getPort()); + rjcConnFactory.setHostName(SettingsUtils.getHost()); + rjcConnFactory.afterPropertiesSet(); + + StringRedisTemplate templateRJC = new StringRedisTemplate(rjcConnFactory); + DefaultRedisMap mapRJC = new DefaultRedisMap("bound:key:mapRJC", templateRJC); + DefaultRedisSet setRJC = new DefaultRedisSet("bound:key:setRJC", templateRJC); + RedisList listRJC = new DefaultRedisList("bound:key:listRJC", templateRJC); StringObjectFactory sof = new StringObjectFactory(); - DefaultRedisMap mapJS = new DefaultRedisMap("bound:key:map", templateJS); - - DefaultRedisSet setJS = new DefaultRedisSet("bound:key:set", templateJS); - - RedisList list = new DefaultRedisList("bound:key:list", templateJS); - return Arrays.asList(new Object[][] { { new RedisAtomicInteger("bound:key:int", jedisConnFactory), sof, templateJS }, { new RedisAtomicLong("bound:key:long", jedisConnFactory), sof, templateJS }, - { list, sof, templateJS }, { setJS, sof, templateJS }, { mapJS, sof, templateJS } }); + { list, sof, templateJS }, { setJS, sof, templateJS }, { mapJS, sof, templateJS }, + { new RedisAtomicInteger("bound:key:intJR", jredisConnFactory), sof, templateJR }, + { new RedisAtomicLong("bound:key:longJR", jredisConnFactory), sof, templateJR }, + { mapJR, sof, templateJR }, + { new RedisAtomicInteger("bound:key:intLT", lettuceConnFactory), sof, templateLT }, + { new RedisAtomicLong("bound:key:longLT", lettuceConnFactory), sof, templateLT }, + { listLT, sof, templateLT }, { setLT, sof, templateLT }, { mapLT, sof, templateLT }, + { new RedisAtomicInteger("bound:key:intSrp", srpConnFactory), sof, templateSRP }, + { new RedisAtomicLong("bound:key:longSrp", srpConnFactory), sof, templateSRP }, + { listSRP, sof, templateSRP }, { setSRP, sof, templateSRP }, { mapSRP, sof, templateSRP }, + { new RedisAtomicInteger("bound:key:intRjc", rjcConnFactory), sof, templateRJC }, + { new RedisAtomicLong("bound:key:longRjc", rjcConnFactory), sof, templateRJC }, + { listRJC, sof, templateRJC }, { setRJC, sof, templateRJC }, { mapRJC, sof, templateRJC }}); } } diff --git a/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java b/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java index 36a5aa677..e1d260ebe 100644 --- a/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java +++ b/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java @@ -20,27 +20,52 @@ import java.util.Collection; import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; +import org.springframework.data.redis.connection.srp.SrpConnectionFactory; /** * @author Costin Leau + * @author Jennifer Hickey */ public abstract class AtomicCountersParam { public static Collection testParams() { - // create Jedis Factory + // Jedis JedisConnectionFactory jedisConnFactory = new JedisConnectionFactory(); jedisConnFactory.setPort(SettingsUtils.getPort()); jedisConnFactory.setHostName(SettingsUtils.getHost()); jedisConnFactory.setUsePool(true); jedisConnFactory.afterPropertiesSet(); - // jredis factory - // JredisConnectionFactory jredisConnFactory = new JredisConnectionFactory(); - // jredisConnFactory.setUsePool(true); - // jredisConnFactory.setPort(SettingsUtils.getPort()); - // jredisConnFactory.setHostName(SettingsUtils.getHost()); - // jredisConnFactory.afterPropertiesSet(); + // JRedis + JredisConnectionFactory jredisConnFactory = new JredisConnectionFactory(); + jredisConnFactory.setUsePool(true); + jredisConnFactory.setPort(SettingsUtils.getPort()); + jredisConnFactory.setHostName(SettingsUtils.getHost()); + jredisConnFactory.afterPropertiesSet(); - return Arrays.asList(new Object[][] { { jedisConnFactory } }); + // Lettuce + LettuceConnectionFactory lettuceConnFactory = new LettuceConnectionFactory(); + lettuceConnFactory.setPort(SettingsUtils.getPort()); + lettuceConnFactory.setHostName(SettingsUtils.getHost()); + lettuceConnFactory.afterPropertiesSet(); + + // SRP + SrpConnectionFactory srpConnFactory = new SrpConnectionFactory(); + srpConnFactory.setPort(SettingsUtils.getPort()); + srpConnFactory.setHostName(SettingsUtils.getHost()); + srpConnFactory.afterPropertiesSet(); + + // RJC + RjcConnectionFactory rjcConnFactory = new RjcConnectionFactory(); + rjcConnFactory.setPort(SettingsUtils.getPort()); + rjcConnFactory.setHostName(SettingsUtils.getHost()); + rjcConnFactory.afterPropertiesSet(); + + return Arrays.asList(new Object[][] { { jedisConnFactory }, + { jredisConnFactory}, { lettuceConnFactory }, + { srpConnFactory}, { rjcConnFactory } }); } } diff --git a/src/test/java/org/springframework/data/redis/support/atomic/RedisAtomicTests.java b/src/test/java/org/springframework/data/redis/support/atomic/RedisAtomicTests.java index 630a8ef01..fb5a7d88b 100644 --- a/src/test/java/org/springframework/data/redis/support/atomic/RedisAtomicTests.java +++ b/src/test/java/org/springframework/data/redis/support/atomic/RedisAtomicTests.java @@ -18,6 +18,7 @@ package org.springframework.data.redis.support.atomic; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; import java.util.Collection; import java.util.concurrent.CountDownLatch; @@ -32,9 +33,14 @@ import org.junit.runners.Parameterized.Parameters; import org.springframework.data.redis.ConnectionFactoryTracker; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; +import org.springframework.data.redis.connection.srp.SrpConnectionFactory; /** * @author Costin Leau + * @author Jennifer Hickey */ @RunWith(Parameterized.class) public class RedisAtomicTests { @@ -70,6 +76,8 @@ public class RedisAtomicTests { @Test public void testIntCheckAndSet() throws Exception { + // Txs not supported in Jredis + assumeTrue(!isJredis()); intCounter.set(0); assertFalse(intCounter.compareAndSet(1, 10)); assertTrue(intCounter.compareAndSet(0, 10)); @@ -78,6 +86,8 @@ public class RedisAtomicTests { @Test public void testLongCheckAndSet() throws Exception { + // Txs not supported in Jredis + assumeTrue(!isJredis()); longCounter.set(0); assertFalse(longCounter.compareAndSet(1, 10)); assertTrue(longCounter.compareAndSet(0, 10)); @@ -86,18 +96,24 @@ public class RedisAtomicTests { @Test public void testLongIncrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); longCounter.set(0); assertEquals(1, longCounter.incrementAndGet()); } @Test public void testIntIncrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); intCounter.set(0); assertEquals(1, intCounter.incrementAndGet()); } @Test public void testLongCustomIncrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); longCounter.set(0); long delta = 5; assertEquals(delta, longCounter.addAndGet(delta)); @@ -105,11 +121,29 @@ public class RedisAtomicTests { @Test public void testIntCustomIncrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); intCounter.set(0); int delta = 5; assertEquals(delta, intCounter.addAndGet(delta)); } + @Test + public void testLongDecrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); + longCounter.set(1); + assertEquals(0, longCounter.decrementAndGet()); + } + + @Test + public void testIntDecrement() throws Exception { + // DATAREDIS-121 incr/decr broken in RJC + assumeTrue(!isRjc()); + intCounter.set(1); + assertEquals(0, intCounter.decrementAndGet()); + } + @Test public void testReadExistingValue() throws Exception { longCounter.set(5); @@ -120,6 +154,9 @@ public class RedisAtomicTests { // DATAREDIS-108 @Test public void testCompareSet() throws Exception { + // Txs not supported in Jredis, Lettuce checkAndSet not working DATAREDIS-122, + // SRP checkAndSet not working DATAREDIS-123 + assumeTrue(!isJredis() && !isLettuce() && !isSrp()); final AtomicBoolean alreadySet = new AtomicBoolean(false); final int NUM = 50; final String KEY = getClass().getSimpleName() + ":atomic:counter"; @@ -148,4 +185,20 @@ public class RedisAtomicTests { assertFalse("counter already modified", failed.get()); } + + private boolean isRjc() { + return factory instanceof RjcConnectionFactory; + } + + private boolean isSrp() { + return factory instanceof SrpConnectionFactory; + } + + private boolean isJredis() { + return factory instanceof JredisConnectionFactory; + } + + private boolean isLettuce() { + return factory instanceof LettuceConnectionFactory; + } } \ No newline at end of file diff --git a/src/test/java/org/springframework/data/redis/support/collections/AbstractRedisMapTests.java b/src/test/java/org/springframework/data/redis/support/collections/AbstractRedisMapTests.java index ba9453a36..d6ea4e828 100644 --- a/src/test/java/org/springframework/data/redis/support/collections/AbstractRedisMapTests.java +++ b/src/test/java/org/springframework/data/redis/support/collections/AbstractRedisMapTests.java @@ -45,6 +45,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.redis.ConnectionFactoryTracker; +import org.springframework.data.redis.RedisSystemException; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisOperations; @@ -203,6 +204,8 @@ public abstract class AbstractRedisMapTests { System.out.println("Value is " + value); } catch (InvalidDataAccessApiUsageException ex) { // expected + } catch (RedisSystemException ex) { + // expected for SRP and Lettuce } } diff --git a/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java b/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java index a1fd142e4..d22b2b4ad 100644 --- a/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java +++ b/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java @@ -169,7 +169,7 @@ public abstract class CollectionTestParams { lettuceConnFactory.setHostName(SettingsUtils.getHost()); lettuceConnFactory.afterPropertiesSet(); - RedisTemplate stringTemplateLtc = new StringRedisTemplate(srConnFactory); + RedisTemplate stringTemplateLtc = new StringRedisTemplate(lettuceConnFactory); RedisTemplate personTemplateLtc = new RedisTemplate(); personTemplateLtc.setConnectionFactory(lettuceConnFactory); personTemplateLtc.afterPropertiesSet(); diff --git a/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java b/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java index 225b1a497..d32e454e2 100644 --- a/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java +++ b/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java @@ -23,7 +23,9 @@ import org.springframework.data.redis.Person; import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; +import org.springframework.data.redis.connection.srp.SrpConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.JacksonJsonRedisSerializer; import org.springframework.data.redis.serializer.OxmSerializer; @@ -35,6 +37,7 @@ import org.springframework.oxm.xstream.XStreamMarshaller; * Integration test for RedisMap. * * @author Costin Leau + * @author Jennifer Hickey */ public class RedisMapTests extends AbstractRedisMapTests { @@ -111,8 +114,6 @@ public class RedisMapTests extends AbstractRedisMapTests { jsonPersonTemplateJR.afterPropertiesSet(); // RJC - - // rjc RjcConnectionFactory rjcConnFactory = new RjcConnectionFactory(); rjcConnFactory.setUsePool(true); rjcConnFactory.setPort(SettingsUtils.getPort()); @@ -135,23 +136,81 @@ public class RedisMapTests extends AbstractRedisMapTests { jsonPersonTemplateRJC.setHashValueSerializer(jsonStringSerializer); jsonPersonTemplateRJC.afterPropertiesSet(); + // Lettuce + LettuceConnectionFactory lettuceConnFactory = new LettuceConnectionFactory(); + lettuceConnFactory.setPort(SettingsUtils.getPort()); + lettuceConnFactory.setHostName(SettingsUtils.getHost()); + lettuceConnFactory.afterPropertiesSet(); - return Arrays.asList(new Object[][] { { stringFactory, stringFactory, genericTemplate }, - { personFactory, personFactory, genericTemplate }, { stringFactory, personFactory, genericTemplate }, + RedisTemplate genericTemplateLettuce = new RedisTemplate(); + genericTemplateLettuce.setConnectionFactory(lettuceConnFactory); + genericTemplateLettuce.afterPropertiesSet(); + + RedisTemplate xGenericTemplateLettuce = new RedisTemplate(); + xGenericTemplateLettuce.setConnectionFactory(lettuceConnFactory); + xGenericTemplateLettuce.setDefaultSerializer(serializer); + xGenericTemplateLettuce.afterPropertiesSet(); + + RedisTemplate jsonPersonTemplateLettuce = new RedisTemplate(); + jsonPersonTemplateLettuce.setConnectionFactory(lettuceConnFactory); + jsonPersonTemplateLettuce.setDefaultSerializer(jsonSerializer); + jsonPersonTemplateLettuce.setHashKeySerializer(jsonSerializer); + jsonPersonTemplateLettuce.setHashValueSerializer(jsonStringSerializer); + jsonPersonTemplateLettuce.afterPropertiesSet(); + + // SRP + SrpConnectionFactory srpConnFactory = new SrpConnectionFactory(); + srpConnFactory.setPort(SettingsUtils.getPort()); + srpConnFactory.setHostName(SettingsUtils.getHost()); + srpConnFactory.afterPropertiesSet(); + + RedisTemplate genericTemplateSrp = new RedisTemplate(); + genericTemplateSrp.setConnectionFactory(srpConnFactory); + genericTemplateSrp.afterPropertiesSet(); + + RedisTemplate xGenericTemplateSrp = new RedisTemplate(); + xGenericTemplateSrp.setConnectionFactory(srpConnFactory); + xGenericTemplateSrp.setDefaultSerializer(serializer); + xGenericTemplateSrp.afterPropertiesSet(); + + RedisTemplate jsonPersonTemplateSrp = new RedisTemplate(); + jsonPersonTemplateSrp.setConnectionFactory(srpConnFactory); + jsonPersonTemplateSrp.setDefaultSerializer(jsonSerializer); + jsonPersonTemplateSrp.setHashKeySerializer(jsonSerializer); + jsonPersonTemplateSrp.setHashValueSerializer(jsonStringSerializer); + jsonPersonTemplateSrp.afterPropertiesSet(); + + + return Arrays.asList(new Object[][] { + { stringFactory, stringFactory, genericTemplate }, + { personFactory, personFactory, genericTemplate }, + { stringFactory, personFactory, genericTemplate }, { personFactory, stringFactory, genericTemplate }, { personFactory, stringFactory, xstreamGenericTemplate }, + { personFactory, stringFactory, jsonPersonTemplate }, { stringFactory, stringFactory, genericTemplateJR }, { personFactory, personFactory, genericTemplateJR }, { stringFactory, personFactory, genericTemplateJR }, { personFactory, stringFactory, genericTemplateJR }, { personFactory, stringFactory, xGenericTemplateJR }, - { personFactory, stringFactory, jsonPersonTemplate }, { personFactory, stringFactory, jsonPersonTemplateJR }, { stringFactory, stringFactory, genericTemplateRJC }, { personFactory, personFactory, genericTemplateRJC }, { stringFactory, personFactory, genericTemplateRJC }, { personFactory, stringFactory, genericTemplateRJC }, { personFactory, stringFactory, xGenericTemplateRJC }, - { personFactory, stringFactory, jsonPersonTemplateRJC } }); + { personFactory, stringFactory, jsonPersonTemplateRJC }, + { stringFactory, stringFactory, genericTemplateLettuce }, + { personFactory, personFactory, genericTemplateLettuce }, + { stringFactory, personFactory, genericTemplateLettuce }, + { personFactory, stringFactory, genericTemplateLettuce }, + { personFactory, stringFactory, xGenericTemplateLettuce }, + { personFactory, stringFactory, jsonPersonTemplateLettuce }, + { stringFactory, stringFactory, genericTemplateSrp }, + { personFactory, personFactory, genericTemplateSrp }, + { stringFactory, personFactory, genericTemplateSrp }, + { personFactory, stringFactory, genericTemplateSrp }, + { personFactory, stringFactory, xGenericTemplateSrp }, + { personFactory, stringFactory, jsonPersonTemplateSrp }}); } } \ No newline at end of file