Assign 'tuple' to 'stringTuple' in DefaultRedisSerializationContextBuilder.string().
Currently, the builder method incorrectly assigns 'tuple' SerializationPair<String> argument to 'hashValueTuple'. Closes #2651 Original pull request: #2652
This commit is contained in:
@@ -24,6 +24,7 @@ import org.springframework.util.Assert;
|
||||
* @author Mark Paluch
|
||||
* @author Christoph Strobl
|
||||
* @author Shyngys Sapraliyev
|
||||
* @author Zhou KQ
|
||||
* @since 2.0
|
||||
*/
|
||||
class DefaultRedisSerializationContext<K, V> implements RedisSerializationContext<K, V> {
|
||||
@@ -127,7 +128,7 @@ class DefaultRedisSerializationContext<K, V> implements RedisSerializationContex
|
||||
|
||||
Assert.notNull(tuple, "SerializationPair must not be null");
|
||||
|
||||
this.hashValueTuple = tuple;
|
||||
this.stringTuple = tuple;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,17 +15,19 @@
|
||||
*/
|
||||
package org.springframework.data.redis.serializer;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link RedisSerializationContext}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author Christoph Strobl
|
||||
* @author Zhou KQ
|
||||
*/
|
||||
class RedisSerializationContextUnitTests {
|
||||
|
||||
@@ -137,6 +139,48 @@ class RedisSerializationContextUnitTests {
|
||||
assertThat(deserialized).isEqualTo("hello".getBytes());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldEncodeAndDecodeUtf8StringValue() {
|
||||
RedisSerializationContext<String, String> serializationContext = RedisSerializationContext
|
||||
.<String, String>newSerializationContext(StringRedisSerializer.UTF_8)
|
||||
.string(StringRedisSerializer.UTF_8)
|
||||
.build();
|
||||
RedisSerializationContext.SerializationPair<String> serializationPair = serializationContext.getStringSerializationPair();
|
||||
|
||||
assertThat(serializationPair.write("üߨ"))
|
||||
.isEqualTo(ByteBuffer.wrap("üߨ".getBytes(StandardCharsets.UTF_8)));
|
||||
assertThat(serializationPair.read(ByteBuffer.wrap("üߨ".getBytes(StandardCharsets.UTF_8))))
|
||||
.isEqualTo("üߨ");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldEncodeAndDecodeAsciiStringValue() {
|
||||
RedisSerializationContext<String, String> serializationContext = RedisSerializationContext
|
||||
.<String, String>newSerializationContext(StringRedisSerializer.US_ASCII)
|
||||
.string(StringRedisSerializer.US_ASCII)
|
||||
.build();
|
||||
RedisSerializationContext.SerializationPair<String> serializationPair = serializationContext.getStringSerializationPair();
|
||||
|
||||
assertThat(serializationPair.write("üߨ"))
|
||||
.isEqualTo(ByteBuffer.wrap("???".getBytes(StandardCharsets.US_ASCII)));
|
||||
assertThat(serializationPair.read(ByteBuffer.wrap("üߨ".getBytes(StandardCharsets.US_ASCII))))
|
||||
.isEqualTo("???");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldEncodeAndDecodeIso88591StringValue() {
|
||||
RedisSerializationContext<String, String> serializationContext = RedisSerializationContext
|
||||
.<String, String>newSerializationContext(StringRedisSerializer.ISO_8859_1)
|
||||
.string(StringRedisSerializer.ISO_8859_1)
|
||||
.build();
|
||||
RedisSerializationContext.SerializationPair<String> serializationPair = serializationContext.getStringSerializationPair();
|
||||
|
||||
assertThat(serializationPair.write("üߨ"))
|
||||
.isEqualTo(ByteBuffer.wrap("üߨ".getBytes(StandardCharsets.ISO_8859_1)));
|
||||
assertThat(serializationPair.read(ByteBuffer.wrap("üߨ".getBytes(StandardCharsets.ISO_8859_1))))
|
||||
.isEqualTo("üߨ");
|
||||
}
|
||||
|
||||
private RedisSerializationContext<String, Long> createSerializationContext() {
|
||||
|
||||
return RedisSerializationContext.<String, Long> newSerializationContext() //
|
||||
|
||||
Reference in New Issue
Block a user