@Test(expected = IllegalStateException.class) @RedisAvailable public void testListWithMapKeyExpression() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); String key = "foo"; RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setMapKeyExpression(new LiteralExpression(key)); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); }
new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET);
@Test(expected = IllegalStateException.class) @RedisAvailable public void testZsetWithMapKeyExpression() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); String key = "foo"; RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET); handler.setMapKeyExpression(new LiteralExpression(key)); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); }
@Test(expected = IllegalStateException.class) @RedisAvailable public void testSetWithMapKeyExpression() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); String key = "foo"; RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.SET); handler.setMapKeyExpression(new LiteralExpression(key)); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); }
@RedisAvailable @Test(expected = MessageHandlingException.class) public void testListWithListPayloadParsedAndNoKey() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisList<String> redisList = new DefaultRedisList<String>(key, this.initTemplate(jcf, new RedisTemplate<String, String>())); assertEquals(0, redisList.size()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); List<String> list = new ArrayList<String>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); Message<List<String>> message = MessageBuilder.withPayload(list).build(); handler.handleMessage(message); this.deleteKey(jcf, "foo"); }
@Test @RedisAvailable public void testListWithListPayloadAsSingleEntry() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisList<List<String>> redisList = new DefaultRedisList<List<String>>(key, this.initTemplate(jcf, new RedisTemplate<String, List<String>>())); assertEquals(0, redisList.size()); RedisTemplate<String, List<String>> template = this.initTemplate(jcf, new RedisTemplate<String, List<String>>()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(template); handler.setKey(key); handler.setExtractPayloadElements(false); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); List<String> list = new ArrayList<String>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); Message<List<String>> message = new GenericMessage<List<String>>(list); handler.handleMessage(message); assertEquals(1, redisList.size()); List<String> resultList = redisList.get(0); assertEquals("Manny", resultList.get(0)); assertEquals("Moe", resultList.get(1)); assertEquals("Jack", resultList.get(2)); this.deleteKey(jcf, "foo"); }
@Test @RedisAvailable public void testMapWithMapKeyExpression() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.MAP); handler.setMapKeyExpression(new LiteralExpression(key)); handler.setBeanFactory(mock(BeanFactory.class)); try { handler.afterPropertiesSet(); } catch (Exception e) { fail("No exception expected:" + e.getMessage()); } this.deleteKey(jcf, "foo"); }
new RedisStoreWritingMessageHandler(template); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET);
@Test @RedisAvailable public void testPropertiesWithMapKeyExpression() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.PROPERTIES); handler.setMapKeyExpression(new LiteralExpression(key)); handler.setBeanFactory(mock(BeanFactory.class)); try { handler.afterPropertiesSet(); } catch (Exception e) { fail("No exception expected:" + e.getMessage()); } this.deleteKey(jcf, "foo"); }
@Test @RedisAvailable public void testListWithListPayloadParsedAndProvidedKey() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisList<String> redisList = new DefaultRedisList<String>(key, this.initTemplate(jcf, new StringRedisTemplate())); assertEquals(0, redisList.size()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); List<String> list = new ArrayList<String>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); Message<List<String>> message = new GenericMessage<List<String>>(list); handler.handleMessage(message); assertEquals(3, redisList.size()); assertEquals("Manny", redisList.get(0)); assertEquals("Moe", redisList.get(1)); assertEquals("Jack", redisList.get(2)); this.deleteKey(jcf, "foo"); }
@Test @RedisAvailable public void testListWithListPayloadParsedAndProvidedKeyAsHeader() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisList<String> redisList = new DefaultRedisList<String>(key, this.initTemplate(jcf, new StringRedisTemplate())); assertEquals(0, redisList.size()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(jcf); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); List<String> list = new ArrayList<String>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); Message<List<String>> message = MessageBuilder.withPayload(list).setHeader("redis_key", key).build(); handler.handleMessage(message); assertEquals(3, redisList.size()); assertEquals("Manny", redisList.get(0)); assertEquals("Moe", redisList.get(1)); assertEquals("Jack", redisList.get(2)); this.deleteKey(jcf, "foo"); }
@Test @RedisAvailable public void testZsetWithMapPayloadPojoAsSingleEntryHeaderKey() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deletePresidents(jcf); String key = "presidents"; RedisZSet<Map<President, Double>> redisZset = new DefaultRedisZSet<Map<President, Double>>(key, this.initTemplate(jcf, new RedisTemplate<String, Map<President, Double>>())); assertEquals(0, redisZset.size()); RedisTemplate<String, Map<President, Double>> template = this.initTemplate(jcf, new RedisTemplate<String, Map<President, Double>>()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(template); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET); handler.setExtractPayloadElements(false); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); Map<President, Double> presidents = new HashMap<President, Double>(); presidents.put(new President("John Adams"), 18D); presidents.put(new President("Barack Obama"), 21D); presidents.put(new President("Thomas Jefferson"), 19D); Message<Map<President, Double>> message = MessageBuilder.withPayload(presidents).setHeader("redis_key", key).build(); handler.handleMessage(message); assertEquals(1, redisZset.size()); this.deletePresidents(jcf); }
new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET);
@Test @RedisAvailable public void testZsetWithListPayloadAsSingleEntryAndHeaderKeyHeaderScore() { RedisConnectionFactory jcf = this.getConnectionFactoryForTest(); this.deleteKey(jcf, "foo"); String key = "foo"; RedisZSet<List<String>> redisZset = new DefaultRedisZSet<List<String>>(key, this.initTemplate(jcf, new RedisTemplate<String, List<String>>())); assertEquals(0, redisZset.size()); RedisTemplate<String, List<String>> template = this.initTemplate(jcf, new RedisTemplate<String, List<String>>()); RedisStoreWritingMessageHandler handler = new RedisStoreWritingMessageHandler(template); handler.setCollectionType(CollectionType.ZSET); handler.setExtractPayloadElements(false); handler.setBeanFactory(mock(BeanFactory.class)); handler.afterPropertiesSet(); List<String> list = new ArrayList<String>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); Message<List<String>> message = MessageBuilder.withPayload(list).setHeader("redis_key", key). setHeader("redis_zsetScore", 4).build(); handler.handleMessage(message); assertEquals(1, redisZset.size()); Set<TypedTuple<List<String>>> entries = redisZset.rangeByScoreWithScores(1, 4); for (TypedTuple<List<String>> pepboys : entries) { assertTrue(pepboys.getScore() == 4); } this.deleteKey(jcf, "foo"); }
new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET);
new RedisStoreWritingMessageHandler(jcf); handler.setKey(key); handler.setCollectionType(CollectionType.ZSET);
@Bean @ServiceActivator(inputChannel = Sink.INPUT) public MessageHandler redisSinkMessageHandler() { if (this.redisSinkProperties.isKey()) { RedisStoreWritingMessageHandler redisStoreWritingMessageHandler = new RedisStoreWritingMessageHandler( this.redisConnectionFactory); redisStoreWritingMessageHandler.setKeyExpression(this.redisSinkProperties.keyExpression()); return redisStoreWritingMessageHandler; } else if (this.redisSinkProperties.isQueue()) { return new RedisQueueOutboundChannelAdapter(this.redisSinkProperties.queueExpression(), this.redisConnectionFactory); } else { // must be topic RedisPublishingMessageHandler redisPublishingMessageHandler = new RedisPublishingMessageHandler( this.redisConnectionFactory); redisPublishingMessageHandler.setTopicExpression(this.redisSinkProperties.topicExpression()); return redisPublishingMessageHandler; } }