Add SET options EXAT, PXAT

Original Pull Request: #2086
This commit is contained in:
Christoph Strobl
2021-06-28 10:45:02 +02:00
parent f0b22ad76f
commit c878a933f5
4 changed files with 51 additions and 11 deletions

View File

@@ -213,6 +213,22 @@ class JedisConvertersUnitTests {
assertThat(toString(JedisConverters.toSetCommandExPxArgument(Expiration.milliseconds(100)))).isEqualTo("px 100");
}
@Test // GH-2050
void convertsExpirationToSetPXAT() {
assertThat(JedisConverters.toSetCommandExPxArgument(Expiration.unixTimestamp(10, TimeUnit.MILLISECONDS)))
.extracting(SetParams::toString)
.isEqualTo(SetParams.setParams().pxAt(10).toString());
}
@Test // GH-2050
void convertsExpirationToSetEXAT() {
assertThat(JedisConverters.toSetCommandExPxArgument(Expiration.unixTimestamp(1, TimeUnit.MINUTES)))
.extracting(SetParams::toString)
.isEqualTo(SetParams.setParams().exAt(60).toString());
}
@Test // DATAREDIS-316, DATAREDIS-749
void toSetCommandNxXxOptionShouldReturnNXforAbsent() {
assertThat(toString(JedisConverters.toSetCommandNxXxArgument(SetOption.ifAbsent()))).isEqualTo("nx");

View File

@@ -39,8 +39,10 @@ import org.springframework.data.redis.connection.RedisClusterNode.Flag;
import org.springframework.data.redis.connection.RedisClusterNode.LinkState;
import org.springframework.data.redis.connection.RedisStringCommands.SetOption;
import org.springframework.data.redis.connection.RedisZSetCommands;
import org.springframework.data.redis.connection.jedis.JedisConverters;
import org.springframework.data.redis.core.types.Expiration;
import org.springframework.data.redis.core.types.RedisClientInfo;
import redis.clients.jedis.params.SetParams;
/**
* @author Christoph Strobl
@@ -136,6 +138,20 @@ class LettuceConvertersUnitTests {
assertThat((Boolean) getField(args, "xx")).isEqualTo(Boolean.FALSE);
}
@Test // GH-2050
void convertsExpirationToSetPXAT() {
assertThatCommandArgument(LettuceConverters.toSetArgs(Expiration.unixTimestamp(10, TimeUnit.MILLISECONDS), null))
.isEqualTo(SetArgs.Builder.pxAt(10));
}
@Test // GH-2050
void convertsExpirationToSetEXAT() {
assertThatCommandArgument(LettuceConverters.toSetArgs(Expiration.unixTimestamp(1, TimeUnit.MINUTES), null))
.isEqualTo(SetArgs.Builder.exAt(60));
}
@Test // DATAREDIS-316
void toSetArgsShouldSetPxForMilliseconds() {