diff --git a/redisson/src/main/java/org/redisson/api/RSetReactive.java b/redisson/src/main/java/org/redisson/api/RSetReactive.java index 55dd5740a..bdfcb959d 100644 --- a/redisson/src/main/java/org/redisson/api/RSetReactive.java +++ b/redisson/src/main/java/org/redisson/api/RSetReactive.java @@ -146,7 +146,7 @@ public interface RSetReactive extends RCollectionReactive, RSortableReacti * @param names - name of sets * @return size of union */ - Mono union(String... names); + Mono union(String... names); /** * Union sets specified by name with current set. @@ -164,7 +164,7 @@ public interface RSetReactive extends RCollectionReactive, RSortableReacti * @param names - name of sets * @return size of diff */ - Mono diff(String... names); + Mono diff(String... names); /** * Diff sets specified by name with current set. @@ -182,7 +182,7 @@ public interface RSetReactive extends RCollectionReactive, RSortableReacti * @param names - name of sets * @return size of intersection */ - Mono intersection(String... names); + Mono intersection(String... names); /** * Intersection sets specified by name with current set. diff --git a/redisson/src/main/java/org/redisson/api/RSetRx.java b/redisson/src/main/java/org/redisson/api/RSetRx.java index d4312844d..c52c7c0c5 100644 --- a/redisson/src/main/java/org/redisson/api/RSetRx.java +++ b/redisson/src/main/java/org/redisson/api/RSetRx.java @@ -147,7 +147,7 @@ public interface RSetRx extends RCollectionRx, RSortableRx> { * @param names - name of sets * @return size of union */ - Single union(String... names); + Single union(String... names); /** * Union sets specified by name with current set. @@ -165,7 +165,7 @@ public interface RSetRx extends RCollectionRx, RSortableRx> { * @param names - name of sets * @return size of diff */ - Single diff(String... names); + Single diff(String... names); /** * Diff sets specified by name with current set. @@ -183,7 +183,7 @@ public interface RSetRx extends RCollectionRx, RSortableRx> { * @param names - name of sets * @return size of intersection */ - Single intersection(String... names); + Single intersection(String... names); /** * Intersection sets specified by name with current set. diff --git a/redisson/src/test/java/org/redisson/RedissonSetReactiveTest.java b/redisson/src/test/java/org/redisson/RedissonSetReactiveTest.java index be1b42bff..d9b5ba8c8 100644 --- a/redisson/src/test/java/org/redisson/RedissonSetReactiveTest.java +++ b/redisson/src/test/java/org/redisson/RedissonSetReactiveTest.java @@ -7,6 +7,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.concurrent.ExecutionException; + import static org.assertj.core.api.Assertions.*; import org.junit.Assert; @@ -126,7 +127,7 @@ public class RedissonSetReactiveTest extends BaseReactiveTest { } private void checkIterator(RSetReactive set, Set setCopy) { - for (Iterator iterator = toIterator(set.iterator()); iterator.hasNext();) { + for (Iterator iterator = toIterator(set.iterator()); iterator.hasNext(); ) { Long value = iterator.next(); if (!setCopy.remove(value)) { Assert.fail(); @@ -265,4 +266,30 @@ public class RedissonSetReactiveTest extends BaseReactiveTest { Assert.assertEquals(1, sync(set.size()).intValue()); Assert.assertEquals(0, sync(otherSet.size()).intValue()); } + + @Test + public void testIntersection() { + final String firstSetName = "firstSet"; + RSetReactive firstSet = redisson.getSet(firstSetName); + + sync(firstSet.add(1)); + sync(firstSet.add(2)); + sync(firstSet.add(3)); + + final String secondSetName = "secondSet"; + RSetReactive secondSet = redisson.getSet(secondSetName); + + sync(secondSet.add(3)); + sync(secondSet.add(4)); + sync(secondSet.add(1)); + + final RSetReactive tmp = redisson.getSet("tmp"); + + final Integer count = sync(tmp.intersection(firstSetName, secondSetName)); + + Assert.assertEquals(2, count.intValue()); + + Assert.assertTrue(sync(tmp.contains(1))); + Assert.assertTrue(sync(tmp.contains(3))); + } } diff --git a/redisson/src/test/java/org/redisson/rx/RedissonSetRxTest.java b/redisson/src/test/java/org/redisson/rx/RedissonSetRxTest.java index 593bc63fa..f217c8e1e 100644 --- a/redisson/src/test/java/org/redisson/rx/RedissonSetRxTest.java +++ b/redisson/src/test/java/org/redisson/rx/RedissonSetRxTest.java @@ -128,7 +128,7 @@ public class RedissonSetRxTest extends BaseRxTest { } private void checkIterator(RSetRx set, Set setCopy) { - for (Iterator iterator = toIterator(set.iterator()); iterator.hasNext();) { + for (Iterator iterator = toIterator(set.iterator()); iterator.hasNext(); ) { Long value = iterator.next(); if (!setCopy.remove(value)) { Assert.fail(); @@ -267,4 +267,30 @@ public class RedissonSetRxTest extends BaseRxTest { Assert.assertEquals(1, sync(set.size()).intValue()); Assert.assertEquals(0, sync(otherSet.size()).intValue()); } + + @Test + public void testIntersection() { + final String firstSetName = "firstSet"; + RSetRx firstSet = redisson.getSet(firstSetName); + + sync(firstSet.add(1)); + sync(firstSet.add(2)); + sync(firstSet.add(3)); + + final String secondSetName = "secondSet"; + RSetRx secondSet = redisson.getSet(secondSetName); + + sync(secondSet.add(3)); + sync(secondSet.add(4)); + sync(secondSet.add(1)); + + final RSetRx tmp = redisson.getSet("tmp"); + + final Integer count = sync(tmp.intersection(firstSetName, secondSetName)); + + Assert.assertEquals(2, count.intValue()); + + Assert.assertTrue(sync(tmp.contains(1))); + Assert.assertTrue(sync(tmp.contains(3))); + } }