From 266ccd23ecb0bfebf7da58de1d7a7551dd5305c6 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 11 Oct 2023 13:09:41 +0300 Subject: [PATCH] refactoring --- .../test/java/org/redisson/BaseMapTest.java | 32 ++++---- .../java/org/redisson/RedissonBatchTest.java | 57 ++++++------- .../RedissonBlockingDequeReactiveTest.java | 11 ++- .../redisson/RedissonBlockingDequeTest.java | 10 +-- .../redisson/RedissonBlockingQueueTest.java | 13 ++- .../RedissonLiveObjectServiceTest.java | 79 +++++++++---------- .../RedissonPriorityBlockingDequeTest.java | 18 ++--- .../org/redisson/RedissonRateLimiterTest.java | 22 +++--- .../RedissonScheduledExecutorServiceTest.java | 51 ++++++------ .../org/redisson/rx/RedissonBatchRxTest.java | 79 ++++++++----------- .../rx/RedissonBlockingDequeRxTest.java | 12 ++- 11 files changed, 182 insertions(+), 202 deletions(-) diff --git a/redisson/src/test/java/org/redisson/BaseMapTest.java b/redisson/src/test/java/org/redisson/BaseMapTest.java index 0b967259f..b9c5009dd 100644 --- a/redisson/src/test/java/org/redisson/BaseMapTest.java +++ b/redisson/src/test/java/org/redisson/BaseMapTest.java @@ -3,6 +3,7 @@ package org.redisson; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.redisson.api.*; import org.redisson.api.map.MapLoader; import org.redisson.api.map.MapLoaderAsync; @@ -615,23 +616,22 @@ public abstract class BaseMapTest extends BaseTest { } @Test + @Timeout(5) public void testDeserializationErrorReturnsErrorImmediately() { - Assertions.assertTimeout(Duration.ofSeconds(5), () -> { - RMap map = getMap("deserializationFailure", new JsonJacksonCodec()); - Assumptions.assumeTrue(!(map instanceof RLocalCachedMap)); - SimpleObjectWithoutDefaultConstructor object = new SimpleObjectWithoutDefaultConstructor("test-val"); - - assertThat(object.getTestField()).isEqualTo("test-val"); - map.put("test-key", object); - - try { - map.get("test-key"); - Assertions.fail("Expected exception from map.get() call"); - } catch (Exception e) { - e.printStackTrace(); - } - destroy(map); - }); + RMap map = getMap("deserializationFailure", new JsonJacksonCodec()); + Assumptions.assumeTrue(!(map instanceof RLocalCachedMap)); + SimpleObjectWithoutDefaultConstructor object = new SimpleObjectWithoutDefaultConstructor("test-val"); + + assertThat(object.getTestField()).isEqualTo("test-val"); + map.put("test-key", object); + + try { + map.get("test-key"); + Assertions.fail("Expected exception from map.get() call"); + } catch (Exception e) { + e.printStackTrace(); + } + destroy(map); } public static class SimpleObjectWithoutDefaultConstructor { diff --git a/redisson/src/test/java/org/redisson/RedissonBatchTest.java b/redisson/src/test/java/org/redisson/RedissonBatchTest.java index e4086ae04..773c1a354 100644 --- a/redisson/src/test/java/org/redisson/RedissonBatchTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBatchTest.java @@ -5,13 +5,16 @@ import org.assertj.core.api.Assertions; import org.awaitility.Awaitility; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.redisson.ClusterRunner.ClusterProcesses; import org.redisson.RedisRunner.FailedToStartRedisException; import org.redisson.api.*; import org.redisson.api.BatchOptions.ExecutionMode; -import org.redisson.client.*; +import org.redisson.client.RedisClient; +import org.redisson.client.RedisClientConfig; +import org.redisson.client.RedisConnection; import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommands; import org.redisson.cluster.ClusterNodeInfo; @@ -237,26 +240,25 @@ public class RedissonBatchTest extends BaseTest { @ParameterizedTest @MethodSource("data") + @Timeout(20) public void testPerformance() { - org.junit.jupiter.api.Assertions.assertTimeout(Duration.ofSeconds(20), () -> { - RMap map = redisson.getMap("map"); - Map m = new HashMap(); - for (int j = 0; j < 1000; j++) { - m.put("" + j, "" + j); - } - map.putAll(m); - - for (int i = 0; i < 10000; i++) { - RBatch rBatch = redisson.createBatch(); - RMapAsync m1 = rBatch.getMap("map"); - m1.getAllAsync(m.keySet()); - try { - rBatch.execute(); - } catch (Exception e) { - e.printStackTrace(); - } + RMap map = redisson.getMap("map"); + Map m = new HashMap(); + for (int j = 0; j < 1000; j++) { + m.put("" + j, "" + j); + } + map.putAll(m); + + for (int i = 0; i < 10000; i++) { + RBatch rBatch = redisson.createBatch(); + RMapAsync m1 = rBatch.getMap("map"); + m1.getAllAsync(m.keySet()); + try { + rBatch.execute(); + } catch (Exception e) { + e.printStackTrace(); } - }); + } } @Test @@ -670,17 +672,16 @@ public class RedissonBatchTest extends BaseTest { @ParameterizedTest @MethodSource("data") + @Timeout(1) public void testShutdownTimeout(BatchOptions batchOptions) { - org.junit.jupiter.api.Assertions.assertTimeout(Duration.ofMillis(500), () -> { - RedissonClient redisson = createInstance(); + RedissonClient redisson = createInstance(); - RBatch batch = redisson.createBatch(batchOptions); - for (int i = 0; i < 10; i++) { - RFuture f = batch.getBucket("test").setAsync(123); - } - batch.execute(); - redisson.shutdown(); - }); + RBatch batch = redisson.createBatch(batchOptions); + for (int i = 0; i < 10; i++) { + RFuture f = batch.getBucket("test").setAsync(123); + } + batch.execute(); + redisson.shutdown(); } @ParameterizedTest diff --git a/redisson/src/test/java/org/redisson/RedissonBlockingDequeReactiveTest.java b/redisson/src/test/java/org/redisson/RedissonBlockingDequeReactiveTest.java index 2c3b6c9a5..9f71f73f3 100644 --- a/redisson/src/test/java/org/redisson/RedissonBlockingDequeReactiveTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBlockingDequeReactiveTest.java @@ -1,8 +1,8 @@ package org.redisson; import org.awaitility.Awaitility; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; import org.redisson.api.RBlockingDequeReactive; @@ -59,12 +59,11 @@ public class RedissonBlockingDequeReactiveTest extends BaseReactiveTest { } @Test + @Timeout(3) public void testShortPoll() { - Assertions.assertTimeout(Duration.ofSeconds(3), () -> { - RBlockingDequeReactive queue = redisson.getBlockingDeque("queue:pollany"); - sync(queue.pollLast(500, TimeUnit.MILLISECONDS)); - sync(queue.pollFirst(10, TimeUnit.MICROSECONDS)); - }); + RBlockingDequeReactive queue = redisson.getBlockingDeque("queue:pollany"); + sync(queue.pollLast(500, TimeUnit.MILLISECONDS)); + sync(queue.pollFirst(10, TimeUnit.MICROSECONDS)); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonBlockingDequeTest.java b/redisson/src/test/java/org/redisson/RedissonBlockingDequeTest.java index 5a571906d..9d3787f91 100644 --- a/redisson/src/test/java/org/redisson/RedissonBlockingDequeTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBlockingDequeTest.java @@ -4,6 +4,7 @@ import org.awaitility.Awaitility; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.redisson.api.RBlockingDeque; import org.redisson.api.queue.DequeMoveArgs; @@ -76,12 +77,11 @@ public class RedissonBlockingDequeTest extends BaseTest { } @Test + @Timeout(3) public void testShortPoll() { - Assertions.assertTimeout(Duration.ofSeconds(3), () -> { - RBlockingDeque queue = redisson.getBlockingDeque("queue:pollany"); - queue.pollLastAsync(500, TimeUnit.MILLISECONDS); - queue.pollFirstAsync(10, TimeUnit.MICROSECONDS); - }); + RBlockingDeque queue = redisson.getBlockingDeque("queue:pollany"); + queue.pollLastAsync(500, TimeUnit.MILLISECONDS); + queue.pollFirstAsync(10, TimeUnit.MICROSECONDS); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java b/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java index 50f723265..2f4a7450d 100644 --- a/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java @@ -4,6 +4,7 @@ import org.awaitility.Awaitility; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.redisson.ClusterRunner.ClusterProcesses; import org.redisson.RedisRunner.RedisProcess; import org.redisson.api.Entry; @@ -24,7 +25,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -import static org.redisson.RedisRunner.KEYSPACE_EVENTS_OPTIONS.l; public class RedissonBlockingQueueTest extends RedissonQueueTest { @@ -71,12 +71,11 @@ public class RedissonBlockingQueueTest extends RedissonQueueTest { } @Test - public void testShortPoll() { - Assertions.assertTimeout(Duration.ofSeconds(3), () -> { - RBlockingQueue queue = getQueue(); - queue.poll(500, TimeUnit.MILLISECONDS); - queue.poll(10, TimeUnit.MICROSECONDS); - }); + @Timeout(3) + public void testShortPoll() throws InterruptedException { + RBlockingQueue queue = getQueue(); + queue.poll(500, TimeUnit.MILLISECONDS); + queue.poll(10, TimeUnit.MICROSECONDS); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonLiveObjectServiceTest.java b/redisson/src/test/java/org/redisson/RedissonLiveObjectServiceTest.java index dce175e59..b811c214c 100644 --- a/redisson/src/test/java/org/redisson/RedissonLiveObjectServiceTest.java +++ b/redisson/src/test/java/org/redisson/RedissonLiveObjectServiceTest.java @@ -2,6 +2,7 @@ package org.redisson; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.redisson.api.*; import org.redisson.api.annotation.*; import org.redisson.api.condition.Conditions; @@ -2371,53 +2372,51 @@ public class RedissonLiveObjectServiceTest extends BaseTest { } @Test + @Timeout(10) public void testBatchedMerge() { - Assertions.assertTimeout(Duration.ofSeconds(10), () -> { - RLiveObjectService s = redisson.getLiveObjectService(); - - List objects = new ArrayList<>(); - int objectsAmount = 100000; - for (int i = 0; i < objectsAmount; i++) { - TestREntity e = new TestREntity(); - e.setName("" + i); - e.setValue("value" + i); - objects.add(e); - } - List attachedObjects = s.merge(objects.toArray()); - assertThat(attachedObjects).hasSize(objectsAmount); - - objects.clear(); - for (int i = 0; i < objectsAmount; i++) { - TestREntity e = (TestREntity) attachedObjects.get(i); - e.setName("" + i); - e.setValue("value" + i*1000); - objects.add(e); - } - List attachedObjects2 = s.merge(objects.toArray()); - assertThat(attachedObjects2).hasSize(objectsAmount); + RLiveObjectService s = redisson.getLiveObjectService(); - assertThat(redisson.getKeys().count()).isEqualTo(objectsAmount); - }); + List objects = new ArrayList<>(); + int objectsAmount = 100000; + for (int i = 0; i < objectsAmount; i++) { + TestREntity e = new TestREntity(); + e.setName("" + i); + e.setValue("value" + i); + objects.add(e); + } + List attachedObjects = s.merge(objects.toArray()); + assertThat(attachedObjects).hasSize(objectsAmount); + + objects.clear(); + for (int i = 0; i < objectsAmount; i++) { + TestREntity e = (TestREntity) attachedObjects.get(i); + e.setName("" + i); + e.setValue("value" + i*1000); + objects.add(e); + } + List attachedObjects2 = s.merge(objects.toArray()); + assertThat(attachedObjects2).hasSize(objectsAmount); + + assertThat(redisson.getKeys().count()).isEqualTo(objectsAmount); } @Test + @Timeout(40) public void testBatchedPersist() { - Assertions.assertTimeout(Duration.ofSeconds(40), () -> { - RLiveObjectService s = redisson.getLiveObjectService(); - - List objects = new ArrayList<>(); - int objectsAmount = 1000000; - for (int i = 0; i < objectsAmount; i++) { - TestREntity e = new TestREntity(); - e.setName("" + i); - e.setValue("value" + i); - objects.add(e); - } - List attachedObjects = s.persist(objects.toArray()); - assertThat(attachedObjects).hasSize(objectsAmount); + RLiveObjectService s = redisson.getLiveObjectService(); - assertThat(redisson.getKeys().count()).isEqualTo(objectsAmount); - }); + List objects = new ArrayList<>(); + int objectsAmount = 1000000; + for (int i = 0; i < objectsAmount; i++) { + TestREntity e = new TestREntity(); + e.setName("" + i); + e.setValue("value" + i); + objects.add(e); + } + List attachedObjects = s.persist(objects.toArray()); + assertThat(attachedObjects).hasSize(objectsAmount); + + assertThat(redisson.getKeys().count()).isEqualTo(objectsAmount); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonPriorityBlockingDequeTest.java b/redisson/src/test/java/org/redisson/RedissonPriorityBlockingDequeTest.java index 0556ccb12..78dae4cdd 100644 --- a/redisson/src/test/java/org/redisson/RedissonPriorityBlockingDequeTest.java +++ b/redisson/src/test/java/org/redisson/RedissonPriorityBlockingDequeTest.java @@ -1,24 +1,22 @@ package org.redisson; -import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import org.redisson.api.RBlockingDeque; -import java.time.Duration; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.redisson.api.RBlockingDeque; +import static org.assertj.core.api.Assertions.assertThat; public class RedissonPriorityBlockingDequeTest extends BaseTest { @Test + @Timeout(3) public void testShortPoll() { - Assertions.assertTimeout(Duration.ofSeconds(3), () -> { - RBlockingDeque queue = redisson.getPriorityBlockingDeque("queue:pollany"); - queue.pollLastAsync(500, TimeUnit.MILLISECONDS); - queue.pollFirstAsync(10, TimeUnit.MICROSECONDS); - }); + RBlockingDeque queue = redisson.getPriorityBlockingDeque("queue:pollany"); + queue.pollLastAsync(500, TimeUnit.MILLISECONDS); + queue.pollFirstAsync(10, TimeUnit.MICROSECONDS); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonRateLimiterTest.java b/redisson/src/test/java/org/redisson/RedissonRateLimiterTest.java index bd0913bd0..d2fbeaf8c 100644 --- a/redisson/src/test/java/org/redisson/RedissonRateLimiterTest.java +++ b/redisson/src/test/java/org/redisson/RedissonRateLimiterTest.java @@ -1,8 +1,11 @@ package org.redisson; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.redisson.api.*; +import org.junit.jupiter.api.Timeout; +import org.redisson.api.RRateLimiter; +import org.redisson.api.RScoredSortedSet; +import org.redisson.api.RateIntervalUnit; +import org.redisson.api.RateType; import java.time.Duration; import java.util.ArrayList; @@ -162,15 +165,14 @@ public class RedissonRateLimiterTest extends BaseTest { @Test + @Timeout(2) public void testTryAcquire() { - Assertions.assertTimeout(Duration.ofMillis(1500), () -> { - RRateLimiter rr = redisson.getRateLimiter("acquire"); - assertThat(rr.trySetRate(RateType.OVERALL, 1, 5, RateIntervalUnit.SECONDS)).isTrue(); - - assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isTrue(); - assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isFalse(); - assertThat(rr.tryAcquire()).isFalse(); - }); + RRateLimiter rr = redisson.getRateLimiter("acquire"); + assertThat(rr.trySetRate(RateType.OVERALL, 1, 5, RateIntervalUnit.SECONDS)).isTrue(); + + assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isTrue(); + assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isFalse(); + assertThat(rr.tryAcquire()).isFalse(); } @Test diff --git a/redisson/src/test/java/org/redisson/executor/RedissonScheduledExecutorServiceTest.java b/redisson/src/test/java/org/redisson/executor/RedissonScheduledExecutorServiceTest.java index c457b0b90..379d4bf74 100644 --- a/redisson/src/test/java/org/redisson/executor/RedissonScheduledExecutorServiceTest.java +++ b/redisson/src/test/java/org/redisson/executor/RedissonScheduledExecutorServiceTest.java @@ -4,10 +4,7 @@ import mockit.Invocation; import mockit.Mock; import mockit.MockUp; import org.joor.Reflect; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import org.redisson.BaseTest; import org.redisson.Redisson; import org.redisson.RedissonExecutorService; @@ -258,24 +255,23 @@ public class RedissonScheduledExecutorServiceTest extends BaseTest { } @Test - public void testTaskResume() { - Assertions.assertTimeout(Duration.ofSeconds(7), () -> { - RScheduledExecutorService executor = redisson.getExecutorService("test"); - ScheduledFuture future1 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); - ScheduledFuture future2 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); - ScheduledFuture future3 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); + @Timeout(7) + public void testTaskResume() throws ExecutionException, InterruptedException { + RScheduledExecutorService executor = redisson.getExecutorService("test"); + ScheduledFuture future1 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); + ScheduledFuture future2 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); + ScheduledFuture future3 = executor.schedule(new ScheduledCallableTask(), 5, TimeUnit.SECONDS); - node.shutdown(); + node.shutdown(); - RedissonNodeConfig nodeConfig = new RedissonNodeConfig(redisson.getConfig()); - nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("test", 1)); - node = RedissonNode.create(nodeConfig); - node.start(); + RedissonNodeConfig nodeConfig = new RedissonNodeConfig(redisson.getConfig()); + nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("test", 1)); + node = RedissonNode.create(nodeConfig); + node.start(); - assertThat(future1.get()).isEqualTo(100); - assertThat(future2.get()).isEqualTo(100); - assertThat(future3.get()).isEqualTo(100); - }); + assertThat(future1.get()).isEqualTo(100); + assertThat(future2.get()).isEqualTo(100); + assertThat(future3.get()).isEqualTo(100); } @Test @@ -442,15 +438,14 @@ public class RedissonScheduledExecutorServiceTest extends BaseTest { } @Test - public void testCancel2() { - Assertions.assertTimeout(Duration.ofSeconds(15), () -> { - RScheduledExecutorService e = redisson.getExecutorService("myExecutor"); - e.registerWorkers(WorkerOptions.defaults()); - String taskId = redisson.getExecutorService("myExecutor").schedule(new RunnableTask2(), 2000, TimeUnit.MILLISECONDS).getTaskId(); - Thread.sleep(5500); - - assertThat(e.cancelTask(taskId)).isFalse(); - }); + @Timeout(15) + public void testCancel2() throws InterruptedException { + RScheduledExecutorService e = redisson.getExecutorService("myExecutor"); + e.registerWorkers(WorkerOptions.defaults()); + String taskId = redisson.getExecutorService("myExecutor").schedule(new RunnableTask2(), 2000, TimeUnit.MILLISECONDS).getTaskId(); + Thread.sleep(5500); + + assertThat(e.cancelTask(taskId)).isFalse(); } @Test diff --git a/redisson/src/test/java/org/redisson/rx/RedissonBatchRxTest.java b/redisson/src/test/java/org/redisson/rx/RedissonBatchRxTest.java index beb31f86a..afdd18ae7 100644 --- a/redisson/src/test/java/org/redisson/rx/RedissonBatchRxTest.java +++ b/redisson/src/test/java/org/redisson/rx/RedissonBatchRxTest.java @@ -1,23 +1,12 @@ package org.redisson.rx; -import static org.assertj.core.api.Assertions.assertThat; - -import java.io.IOException; -import java.time.Duration; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; - +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Single; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.redisson.BaseTest; @@ -26,25 +15,25 @@ import org.redisson.ClusterRunner.ClusterProcesses; import org.redisson.RedisRunner; import org.redisson.RedisRunner.FailedToStartRedisException; import org.redisson.Redisson; -import org.redisson.api.BatchOptions; +import org.redisson.api.*; import org.redisson.api.BatchOptions.ExecutionMode; -import org.redisson.api.BatchResult; -import org.redisson.api.RBatchRx; -import org.redisson.api.RBucketRx; -import org.redisson.api.RListRx; -import org.redisson.api.RMapCacheRx; -import org.redisson.api.RMapRx; -import org.redisson.api.RScoredSortedSetRx; -import org.redisson.api.RScript; import org.redisson.api.RScript.Mode; -import org.redisson.api.RedissonRxClient; import org.redisson.client.RedisException; import org.redisson.client.codec.StringCodec; import org.redisson.config.Config; -import io.reactivex.rxjava3.core.Completable; -import io.reactivex.rxjava3.core.Maybe; -import io.reactivex.rxjava3.core.Single; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +import static org.assertj.core.api.Assertions.assertThat; public class RedissonBatchRxTest extends BaseRxTest { @@ -98,26 +87,26 @@ public class RedissonBatchRxTest extends BaseRxTest { @ParameterizedTest @MethodSource("data") + @Timeout(21) public void testPerformance(BatchOptions batchOptions) { - Assertions.assertTimeout(Duration.ofSeconds(21), () -> { - RMapRx map = redisson.getMap("map"); - Map m = new HashMap(); - for (int j = 0; j < 1000; j++) { - m.put("" + j, "" + j); - } - sync(map.putAll(m)); - - for (int i = 0; i < 10000; i++) { - RBatchRx batch = redisson.createBatch(batchOptions); - RMapRx m1 = batch.getMap("map"); - Single> f = m1.getAll(m.keySet()); - sync(batch.execute()); - assertThat(sync(f)).hasSize(1000); - } - }); + RMapRx map = redisson.getMap("map"); + Map m = new HashMap(); + for (int j = 0; j < 1000; j++) { + m.put("" + j, "" + j); + } + sync(map.putAll(m)); + + for (int i = 0; i < 10000; i++) { + RBatchRx batch = redisson.createBatch(batchOptions); + RMapRx m1 = batch.getMap("map"); + Single> f = m1.getAll(m.keySet()); + sync(batch.execute()); + assertThat(sync(f)).hasSize(1000); + } } @Test + @Timeout(20) public void testConnectionLeakAfterError() { Config config = BaseTest.createConfig(); config.useSingleServer() @@ -129,7 +118,7 @@ public class RedissonBatchRxTest extends BaseRxTest { BatchOptions batchOptions = BatchOptions.defaults().executionMode(ExecutionMode.REDIS_WRITE_ATOMIC); RBatchRx batch = redisson.createBatch(batchOptions); - for (int i = 0; i < 100000; i++) { + for (int i = 0; i < 130000; i++) { batch.getBucket("test").set(123); } diff --git a/redisson/src/test/java/org/redisson/rx/RedissonBlockingDequeRxTest.java b/redisson/src/test/java/org/redisson/rx/RedissonBlockingDequeRxTest.java index 7315745ae..199d1bf70 100644 --- a/redisson/src/test/java/org/redisson/rx/RedissonBlockingDequeRxTest.java +++ b/redisson/src/test/java/org/redisson/rx/RedissonBlockingDequeRxTest.java @@ -1,12 +1,11 @@ package org.redisson.rx; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; import org.redisson.api.RBlockingDequeRx; -import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; @@ -58,12 +57,11 @@ public class RedissonBlockingDequeRxTest extends BaseRxTest { } @Test + @Timeout(3) public void testShortPoll() { - Assertions.assertTimeout(Duration.ofSeconds(3), () -> { - RBlockingDequeRx queue = redisson.getBlockingDeque("queue:pollany"); - sync(queue.pollLast(500, TimeUnit.MILLISECONDS)); - sync(queue.pollFirst(10, TimeUnit.MICROSECONDS)); - }); + RBlockingDequeRx queue = redisson.getBlockingDeque("queue:pollany"); + sync(queue.pollLast(500, TimeUnit.MILLISECONDS)); + sync(queue.pollFirst(10, TimeUnit.MICROSECONDS)); } @Test