package org.redisson; import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; import org.junit.Assert; import org.junit.Test; import org.redisson.api.RLexSortedSet; public class RedissonLexSortedSetTest extends BaseTest { @Test public void testAll() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.addAll(Arrays.asList("foo", "bar")); assertThat(set.contains("foo")).isTrue(); assertThat(set.contains("bar")).isTrue(); assertThat(set.contains("123")).isFalse(); } @Test public void testPollLast() { RLexSortedSet set = redisson.getLexSortedSet("simple"); Assert.assertNull(set.pollLast()); set.add("a"); set.add("b"); set.add("c"); Assert.assertEquals("c", set.pollLast()); assertThat(set).containsExactly("a", "b"); } @Test public void testPollFirst() { RLexSortedSet set = redisson.getLexSortedSet("simple"); Assert.assertNull(set.pollFirst()); set.add("a"); set.add("b"); set.add("c"); Assert.assertEquals("a", set.pollFirst()); assertThat(set).containsExactly("b", "c"); } @Test public void testFirstLast() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); Assert.assertEquals("a", set.first()); Assert.assertEquals("d", set.last()); } @Test public void testRemoveLexRangeTail() { RLexSortedSet set = redisson.getLexSortedSet("simple"); Assert.assertTrue(set.add("a")); Assert.assertFalse(set.add("a")); Assert.assertTrue(set.add("b")); Assert.assertTrue(set.add("c")); Assert.assertTrue(set.add("d")); Assert.assertTrue(set.add("e")); Assert.assertTrue(set.add("f")); Assert.assertTrue(set.add("g")); Assert.assertEquals(0, (int)set.removeRangeTail("z", false)); Assert.assertEquals(4, (int)set.removeRangeTail("c", false)); assertThat(set).containsExactly("a", "b", "c"); Assert.assertEquals(1, (int)set.removeRangeTail("c", true)); assertThat(set).containsExactly("a", "b"); } @Test public void testRemoveLexRangeHead() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("f"); set.add("g"); Assert.assertEquals(2, (int)set.removeRangeHead("c", false)); assertThat(set).containsExactly("c", "d", "e", "f", "g"); Assert.assertEquals(1, (int)set.removeRangeHead("c", true)); assertThat(set).containsExactly("d", "e", "f", "g"); } @Test public void testRemoveLexRange() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("f"); set.add("g"); Assert.assertEquals(5, set.removeRange("aaa", true, "g", false)); assertThat(set).containsExactly("a", "g"); } @Test public void testLexRangeTail() { RLexSortedSet set = redisson.getLexSortedSet("simple"); Assert.assertTrue(set.add("a")); Assert.assertFalse(set.add("a")); Assert.assertTrue(set.add("b")); Assert.assertTrue(set.add("c")); Assert.assertTrue(set.add("d")); Assert.assertTrue(set.add("e")); Assert.assertTrue(set.add("f")); Assert.assertTrue(set.add("g")); assertThat(set.rangeTail("c", false)).containsExactly("d", "e", "f", "g"); assertThat(set.rangeTail("c", true)).containsExactly("c", "d", "e", "f", "g"); } @Test public void testLexRangeHead() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("f"); set.add("g"); assertThat(set.rangeHead("c", false)).containsExactly("a", "b"); assertThat(set.rangeHead("c", true)).containsExactly("a", "b", "c"); } @Test public void testLexRange() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("f"); set.add("g"); assertThat(set.range("aaa", true, "g", false)).containsExactly("b", "c", "d", "e", "f"); } @Test public void testLexCount() { RLexSortedSet set = redisson.getLexSortedSet("simple"); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("f"); set.add("g"); assertThat(set.count("b", true, "f", true)).isEqualTo(5); assertThat(set.count("b", false, "f", false)).isEqualTo(3); } }