Add support for microseconds using TIME.
Closes #526. Original pull request: #526.
This commit is contained in:
@@ -26,6 +26,8 @@ import static org.springframework.data.redis.connection.RedisGeoCommands.GeoRadi
|
||||
import static org.springframework.data.redis.core.ScanOptions.*;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.BlockingDeque;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
@@ -2117,6 +2119,31 @@ public abstract class AbstractConnectionIntegrationTests {
|
||||
assertThat((Long) results.get(0) > 0).isTrue();
|
||||
}
|
||||
|
||||
@Test // GH-526
|
||||
void testGetTimeShouldRequestServerTimeAsMicros() {
|
||||
|
||||
actual.add(connection.time(TimeUnit.MICROSECONDS));
|
||||
actual.add(connection.time(TimeUnit.SECONDS));
|
||||
actual.add(connection.time(TimeUnit.HOURS));
|
||||
|
||||
List<Object> results = getResults();
|
||||
assertThat(results).isNotEmpty();
|
||||
assertThat(results.get(0)).isNotNull();
|
||||
|
||||
Instant now = Instant.now();
|
||||
Instant reference = Instant.parse("1970-01-01T00:00:00.0Z");
|
||||
|
||||
Instant micros = reference.plus(Duration.ofNanos(TimeUnit.MICROSECONDS.toNanos((Long) results.get(0))));
|
||||
|
||||
Instant seconds = reference.plus(Duration.ofNanos(TimeUnit.SECONDS.toNanos((Long) results.get(1))));
|
||||
|
||||
Instant hours = reference.plus(Duration.ofNanos(TimeUnit.HOURS.toNanos((Long) results.get(2))));
|
||||
|
||||
assertThat(micros).isCloseTo(now, within(1, ChronoUnit.MINUTES));
|
||||
assertThat(seconds).isCloseTo(now, within(1, ChronoUnit.MINUTES));
|
||||
assertThat(hours).isCloseTo(now, within(1, ChronoUnit.HOURS));
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-269
|
||||
public void clientSetNameWorksCorrectly() {
|
||||
connection.setClientName("foo".getBytes());
|
||||
|
||||
@@ -319,13 +319,11 @@ class LettuceClusterConnectionUnitTests {
|
||||
void timeShouldBeExecutedOnArbitraryNode() {
|
||||
|
||||
List<byte[]> values = Arrays.asList("1449655759".getBytes(), "92217".getBytes());
|
||||
when(clusterConnection1Mock.time()).thenReturn(values);
|
||||
when(clusterConnection2Mock.time()).thenReturn(values);
|
||||
when(clusterConnection3Mock.time()).thenReturn(values);
|
||||
when(dedicatedConnectionMock.time()).thenReturn(new LettuceServerCommands.CompletedRedisFuture<>(values));
|
||||
|
||||
connection.time();
|
||||
|
||||
verifyInvocationsAcross("time", times(1), clusterConnection1Mock, clusterConnection2Mock, clusterConnection3Mock);
|
||||
verify(dedicatedConnectionMock).time();
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-315
|
||||
|
||||
Reference in New Issue
Block a user