#314 使用NoSQL Unit的嵌入式Redis编写测试

This commit is contained in:
Calvin
2014-01-17 15:34:18 +08:00
parent 3d798b6000
commit e75af17d8c
2 changed files with 41 additions and 4 deletions
@@ -188,7 +188,6 @@ public class JedisTemplate {
public long incr(final String key) {
return execute(new JedisAction<Long>() {
@Override
public Long action(Jedis jedis) {
return jedis.incr(key);
@@ -198,7 +197,6 @@ public class JedisTemplate {
public long decr(final String key) {
return execute(new JedisAction<Long>() {
@Override
public Long action(Jedis jedis) {
return jedis.decr(key);
@@ -209,7 +207,6 @@ public class JedisTemplate {
// ////////////// 关于List ///////////////////////////
public void lpush(final String key, final String value) {
execute(new JedisActionNoResult() {
@Override
public void action(Jedis jedis) {
jedis.lpush(key, value);
@@ -217,6 +214,16 @@ public class JedisTemplate {
});
}
public String rpop(final String key) {
return execute(new JedisAction<String>() {
@Override
public String action(Jedis jedis) {
return jedis.rpop(key);
}
});
}
/**
* 返回List长度, key不存在时返回0,key类型不是list时抛出异常.
*/
@@ -284,7 +291,7 @@ public class JedisTemplate {
}
/**
* 返回List长度, key不存在时返回0,key类型不是sorted set时抛出异常.
* 返回sorted set长度, key不存在时返回0,key类型不是sorted set时抛出异常.
*/
public long zcard(final String key) {
return execute(new JedisAction<Long>() {
@@ -51,4 +51,34 @@ public class JedisTemplateTest {
assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L);
assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero();
}
@Test
public void listActions() {
String key = "test.string.key";
String value = "123";
String value2 = "456";
// push/pop single element
jedisTemplate.lpush(key, value);
assertThat(jedisTemplate.llen(key)).isEqualTo(1);
assertThat(jedisTemplate.rpop(key)).isEqualTo(value);
// push/pop two elements
jedisTemplate.lpush(key, value);
jedisTemplate.lpush(key, value2);
assertThat(jedisTemplate.llen(key)).isEqualTo(2);
assertThat(jedisTemplate.rpop(key)).isEqualTo(value);
assertThat(jedisTemplate.rpop(key)).isEqualTo(value2);
// remove elements
jedisTemplate.lpush(key, value);
jedisTemplate.lpush(key, value);
jedisTemplate.lpush(key, value);
assertThat(jedisTemplate.llen(key)).isEqualTo(3);
assertThat(jedisTemplate.lremOne(key, value)).isTrue();
assertThat(jedisTemplate.llen(key)).isEqualTo(2);
assertThat(jedisTemplate.lremAll(key, value)).isTrue();
assertThat(jedisTemplate.llen(key)).isEqualTo(0);
assertThat(jedisTemplate.lremAll(key, value)).isFalse();
}
}