@Override public RedisZSet<E> unionAndStore(Collection<? extends RedisZSet<?>> sets, String destKey) { boundZSetOps.unionAndStore(CollectionUtils.extractKeys(sets), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@Override public RedisZSet<E> intersectAndStore(RedisZSet<?> set, String destKey) { boundZSetOps.intersectAndStore(set.getKey(), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@Override public RedisZSet<E> intersectAndStore(Collection<? extends RedisZSet<?>> sets, String destKey) { boundZSetOps.intersectAndStore(CollectionUtils.extractKeys(sets), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@Override public RedisZSet<E> unionAndStore(RedisZSet<?> set, String destKey) { boundZSetOps.unionAndStore(set.getKey(), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@SuppressWarnings("unchecked") private RedisStore createStore(DataType dt) { switch (dt) { case LIST: return new DefaultRedisList(key, template); case SET: return new DefaultRedisSet(key, template); case ZSET: return new DefaultRedisZSet(key, template); case HASH: if (CollectionType.PROPERTIES.equals(type)) { return new RedisProperties(key, template); } return new DefaultRedisMap(key, template); } return null; }
String key = "presidents"; RedisZSet<String> redisZset = new DefaultRedisZSet<String>(key, this.initTemplate(jcf, new StringRedisTemplate()));
@Test @RedisAvailable public void testZsetSimplePayloadOverwrite() { RedisZSet<String> redisZSet = new DefaultRedisZSet<String>("foo", this.redisTemplate); assertEquals(0, redisZSet.size()); Message<String> message = MessageBuilder.withPayload("bar") .setHeader(RedisHeaders.KEY, "foo") .build(); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(1), redisZSet.score("bar")); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(1), redisZSet.score("bar")); }
@Test @RedisAvailable public void testMapToZsetWithProvidedKey() { RedisZSet<String> redisZset = new DefaultRedisZSet<String>("presidents", this.redisTemplate); assertEquals(0, redisZset.size());
@Test @RedisAvailable public void testZsetSimplePayloadIncrement() { RedisZSet<String> redisZSet = new DefaultRedisZSet<String>("foo", this.redisTemplate); assertEquals(0, redisZSet.size()); Message<String> message = MessageBuilder.withPayload("bar") .setHeader(RedisHeaders.KEY, "foo") .setHeader(RedisHeaders.ZSET_INCREMENT_SCORE, true) .build(); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(1), redisZSet.score("bar")); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(2), redisZSet.score("bar")); }
@Test @RedisAvailable public void testZsetSimplePayloadIncrementBy2() { RedisZSet<String> redisZSet = new DefaultRedisZSet<String>("foo", this.redisTemplate); assertEquals(0, redisZSet.size()); Message<String> message = MessageBuilder.withPayload("bar") .setHeader(RedisHeaders.KEY, "foo") .setHeader(RedisHeaders.ZSET_SCORE, 2) .setHeader(RedisHeaders.ZSET_INCREMENT_SCORE, true) .build(); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(2), redisZSet.score("bar")); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(4), redisZSet.score("bar")); }
String key = "presidents"; RedisZSet<President> redisZset = new DefaultRedisZSet<President>(key, this.initTemplate(jcf, new RedisTemplate<String, President>()));
@Test @RedisAvailable public void testZsetSimplePayloadOverwriteWithHeaderScore() { RedisZSet<String> redisZSet = new DefaultRedisZSet<String>("foo", this.redisTemplate); assertEquals(0, redisZSet.size()); Message<String> message = MessageBuilder.withPayload("bar") .setHeader(RedisHeaders.KEY, "foo") .setHeader(RedisHeaders.ZSET_INCREMENT_SCORE, false) .setHeader(RedisHeaders.ZSET_SCORE, 2) .build(); this.zsetChannel.send(message); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(2), redisZSet.score("bar")); this.zsetChannel.send(MessageBuilder.fromMessage(message).setHeader(RedisHeaders.ZSET_SCORE, 15).build()); assertEquals(1, redisZSet.size()); assertEquals(Double.valueOf(15), redisZSet.score("bar")); }
@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); }
@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"); }
String key = "foo"; RedisZSet<String> redisZset = new DefaultRedisZSet<String>(key, this.initTemplate(jcf, new StringRedisTemplate()));
String key = "foo"; RedisZSet<String> redisZset = new DefaultRedisZSet<String>(key, this.initTemplate(jcf, new StringRedisTemplate()));
String key = "foo"; RedisZSet<String> redisZset = new DefaultRedisZSet<String>(key, this.initTemplate(jcf, new StringRedisTemplate()));
@Override public RedisZSet<E> unionAndStore(RedisZSet<?> set, String destKey) { boundZSetOps.unionAndStore(set.getKey(), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@Override public RedisZSet<E> unionAndStore(Collection<? extends RedisZSet<?>> sets, String destKey) { boundZSetOps.unionAndStore(CollectionUtils.extractKeys(sets), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }
@Override public RedisZSet<E> intersectAndStore(Collection<? extends RedisZSet<?>> sets, String destKey) { boundZSetOps.intersectAndStore(CollectionUtils.extractKeys(sets), destKey); return new DefaultRedisZSet<>(boundZSetOps.getOperations().boundZSetOps(destKey), getDefaultScore()); }