package com.lambdaworks.redis.commands;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Fail.fail;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import com.lambdaworks.redis.AbstractRedisClientTest;
import com.lambdaworks.redis.RedisHLLConnection;
import com.lambdaworks.redis.api.sync.RedisHLLCommands;
public class HLLCommandTest extends AbstractRedisClientTest {
@Rule
public ExpectedException exception = ExpectedException.none();
private RedisHLLCommands<String, String> commands() {
return redis;
}
private RedisHLLConnection<String, String> connection() {
return redis;
}
@Test
public void pfadd() throws Exception {
assertThat(commands().pfadd(key, value, value)).isEqualTo(1);
assertThat(commands().pfadd(key, value, value)).isEqualTo(0);
assertThat(commands().pfadd(key, value)).isEqualTo(0);
}
@Test
public void pfaddDeprecated() throws Exception {
assertThat(connection().pfadd(key, value, value)).isEqualTo(1);
assertThat(connection().pfadd(key, value, value)).isEqualTo(0);
assertThat(connection().pfadd(key, value)).isEqualTo(0);
}
@Test(expected = IllegalArgumentException.class)
public void pfaddNoValues() throws Exception {
commands().pfadd(key);
}
@Test
public void pfaddNullValues() throws Exception {
try {
commands().pfadd(key, null);
fail("Missing IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
try {
commands().pfadd(key, value, null);
fail("Missing IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
}
@Test
public void pfmerge() throws Exception {
commands().pfadd(key, value);
commands().pfadd("key2", "value2");
commands().pfadd("key3", "value3");
assertThat(commands().pfmerge(key, "key2", "key3")).isEqualTo("OK");
assertThat(commands().pfcount(key)).isEqualTo(3);
commands().pfadd("key2660", "rand", "mat");
commands().pfadd("key7112", "mat", "perrin");
commands().pfmerge("key8885", "key2660", "key7112");
assertThat(commands().pfcount("key8885")).isEqualTo(3);
}
@Test
public void pfmergeDeprecated() throws Exception {
connection().pfadd(key, value);
connection().pfadd("key2", "value2");
connection().pfadd("key3", "value3");
assertThat(connection().pfmerge(key, "key2", "key3")).isEqualTo("OK");
}
@Test(expected = IllegalArgumentException.class)
public void pfmergeNoKeys() throws Exception {
commands().pfmerge(key);
}
@Test
public void pfcount() throws Exception {
commands().pfadd(key, value);
commands().pfadd("key2", "value2");
assertThat(commands().pfcount(key)).isEqualTo(1);
assertThat(commands().pfcount(key, "key2")).isEqualTo(2);
}
@Test
public void pfcountDeprecated() throws Exception {
connection().pfadd(key, value);
connection().pfadd("key2", "value2");
assertThat(connection().pfcount(key)).isEqualTo(1);
assertThat(connection().pfcount(key, "key2")).isEqualTo(2);
}
@Test(expected = IllegalArgumentException.class)
public void pfcountNoKeys() throws Exception {
commands().pfcount();
}
}