diff --git a/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java b/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java index 2d4e0c324..08653322e 100644 --- a/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java +++ b/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java @@ -3,7 +3,9 @@ package org.redisson; import java.util.List; import static org.junit.Assert.*; import org.junit.Test; +import org.redisson.api.RBatch; import org.redisson.api.RBatchReactive; +import org.redisson.api.RBucket; import org.redisson.api.RBucketReactive; import org.redisson.reactive.RedissonBucketReactive; import org.redisson.reactive.RedissonMapCacheReactive; @@ -50,4 +52,25 @@ public class RedissonReferenceReactiveTest extends BaseReactiveTest { assertEquals("b3", result.get(1).getName()); assertEquals("b1", result.get(2).getName()); } + + @Test + public void testReactiveToNormal() throws InterruptedException { + RBatchReactive batch = redisson.createBatch(); + RBucketReactive b1 = batch.getBucket("b1"); + RBucketReactive b2 = batch.getBucket("b2"); + RBucketReactive b3 = batch.getBucket("b3"); + b2.set(b3); + b1.set(b2); + b3.set(b1); + sync(batch.execute()); + + RBatch b = Redisson.create(redisson.getConfig()).createBatch(); + b.getBucket("b1").getAsync(); + b.getBucket("b2").getAsync(); + b.getBucket("b3").getAsync(); + List result = (List)b.execute(); + assertEquals("b2", result.get(0).getName()); + assertEquals("b3", result.get(1).getName()); + assertEquals("b1", result.get(2).getName()); + } } diff --git a/redisson/src/test/java/org/redisson/RedissonReferenceTest.java b/redisson/src/test/java/org/redisson/RedissonReferenceTest.java index 383ae0a77..622db2ab1 100644 --- a/redisson/src/test/java/org/redisson/RedissonReferenceTest.java +++ b/redisson/src/test/java/org/redisson/RedissonReferenceTest.java @@ -5,8 +5,11 @@ import java.util.concurrent.TimeUnit; import static org.junit.Assert.*; import org.junit.Test; import org.redisson.api.RBatch; +import org.redisson.api.RBatchReactive; import org.redisson.api.RBucket; import org.redisson.api.RBucketAsync; +import org.redisson.api.RBucketReactive; +import org.redisson.api.RLiveObject; /** * @@ -28,6 +31,15 @@ public class RedissonReferenceTest extends BaseTest { assertTrue(b4.get() instanceof RedissonMapCache); ((RedissonMapCache) b4.get()).fastPut(b1, b2, 1, TimeUnit.MINUTES); assertEquals("b2", ((RBucket)((RedissonMapCache) b4.get()).get(b1)).getName()); + RBucket b5 = redisson.getBucket("b5"); + RedissonLiveObjectServiceTest.TestREntity rlo = redisson.getLiveObjectService().create(RedissonLiveObjectServiceTest.TestREntity.class); + rlo.setName("t1"); + rlo.setValue("t2"); + b5.set(rlo); + assertTrue(redisson.getBucket("b5").get() instanceof RLiveObject); + assertEquals("t1", ((RedissonLiveObjectServiceTest.TestREntity) redisson.getBucket("b5").get()).getName()); + assertEquals("t2", ((RedissonLiveObjectServiceTest.TestREntity) redisson.getBucket("b5").get()).getValue()); + } @Test @@ -51,4 +63,25 @@ public class RedissonReferenceTest extends BaseTest { assertEquals("b1", result.get(2).getName()); } + @Test + public void testNormalToReactive() { + RBatch batch = redisson.createBatch(); + RBucketAsync b1 = batch.getBucket("b1"); + RBucketAsync b2 = batch.getBucket("b2"); + RBucketAsync b3 = batch.getBucket("b3"); + b2.setAsync(b3); + b1.setAsync(b2); + b3.setAsync(b1); + batch.execute(); + + RBatchReactive b = Redisson.createReactive(redisson.getConfig()).createBatch(); + b.getBucket("b1").get(); + b.getBucket("b2").get(); + b.getBucket("b3").get(); + List result = (List) BaseReactiveTest.sync(b.execute()); + assertEquals("b2", result.get(0).getName()); + assertEquals("b3", result.get(1).getName()); + assertEquals("b1", result.get(2).getName()); + } + }