package com.lambdaworks.redis.cluster.commands;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.lambdaworks.redis.AbstractRedisClientTest;
import com.lambdaworks.redis.FastShutdown;
import com.lambdaworks.redis.RedisURI;
import com.lambdaworks.redis.TestSettings;
import com.lambdaworks.redis.api.sync.RedisCommands;
import com.lambdaworks.redis.cluster.ClusterTestUtil;
import com.lambdaworks.redis.cluster.RedisClusterClient;
import com.lambdaworks.redis.cluster.api.StatefulRedisClusterConnection;
/**
* @author Mark Paluch
*/
public class KeyClusterCommandTest extends AbstractRedisClientTest {
private static RedisClusterClient redisClusterClient;
private StatefulRedisClusterConnection<String, String> clusterConnection;
@BeforeClass
public static void setupClient() {
redisClusterClient = RedisClusterClient
.create(RedisURI.Builder.redis(TestSettings.host(), TestSettings.port(900)).build());
}
@AfterClass
public static void closeClient() {
FastShutdown.shutdown(redisClusterClient);
}
@Before
public void openConnection() throws Exception {
redis = connect();
ClusterTestUtil.flushDatabaseOfAllNodes(clusterConnection);
}
@Override
@SuppressWarnings("unchecked")
protected RedisCommands<String, String> connect() {
clusterConnection = redisClusterClient.connect();
return ClusterTestUtil.redisCommandsOverCluster(clusterConnection);
}
@Test
public void del() throws Exception {
redis.set(key, "value");
redis.set("a", "value");
redis.set("b", "value");
assertThat(redis.del(key, "a", "b")).isEqualTo(3);
assertThat(redis.exists(key)).isFalse();
assertThat(redis.exists("a")).isFalse();
assertThat(redis.exists("b")).isFalse();
}
@Test
public void exists() throws Exception {
assertThat(redis.exists(key, "a", "b")).isEqualTo(0);
redis.set(key, "value");
redis.set("a", "value");
redis.set("b", "value");
assertThat(redis.exists(key, "a", "b")).isEqualTo(3);
}
@Test
public void touch() throws Exception {
redis.set(key, "value");
redis.set("a", "value");
redis.set("b", "value");
assertThat(redis.touch(key, "a", "b")).isEqualTo(3);
assertThat(redis.exists(key, "a", "b")).isEqualTo(3);
}
@Test
public void unlink() throws Exception {
redis.set(key, "value");
redis.set("a", "value");
redis.set("b", "value");
assertThat(redis.unlink(key, "a", "b")).isEqualTo(3);
assertThat(redis.exists(key)).isFalse();
}
}