ScanParamsTest.java
package redis.clients.jedis.params;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.util.SafeEncoder;
import static org.junit.jupiter.api.Assertions.*;
public class ScanParamsTest {
@Test
public void matchPreservesNonAsciiPatternAcrossCharsets() {
Charset original = SafeEncoder.DEFAULT_CHARSET;
// Force encode/decode charsets to differ so a default-charset decode is observable.
SafeEncoder.DEFAULT_CHARSET = StandardCharsets.UTF_8.equals(Charset.defaultCharset())
? StandardCharsets.ISO_8859_1
: StandardCharsets.UTF_8;
try {
String pattern = "{caf��}*";
ScanParams params = new ScanParams().match(pattern);
assertEquals(pattern, params.match());
assertArrayEquals(params.binaryMatch(), SafeEncoder.encode(params.match()));
} finally {
SafeEncoder.DEFAULT_CHARSET = original;
}
}
@Test
public void checkEqualsIdenticalParams() {
ScanParams firstParam = getDefaultValue();
ScanParams secondParam = getDefaultValue();
assertTrue(firstParam.equals(secondParam));
}
@Test
public void checkHashCodeIdenticalParams() {
ScanParams firstParam = getDefaultValue();
ScanParams secondParam = getDefaultValue();
assertEquals(firstParam.hashCode(), secondParam.hashCode());
}
@Test
public void checkEqualsVariousParams() {
ScanParams firstParam = getDefaultValue();
firstParam.count(15);
ScanParams secondParam = getDefaultValue();
secondParam.count(16);
assertFalse(firstParam.equals(secondParam));
}
@Test
public void checkHashCodeVariousParams() {
ScanParams firstParam = getDefaultValue();
firstParam.count(15);
ScanParams secondParam = getDefaultValue();
secondParam.count(16);
assertNotEquals(firstParam.hashCode(), secondParam.hashCode());
}
@Test
public void checkEqualsWithNull() {
ScanParams firstParam = getDefaultValue();
ScanParams secondParam = null;
assertFalse(firstParam.equals(secondParam));
}
private ScanParams getDefaultValue() {
return new ScanParams();
}
}