Skip to content

Commit

Permalink
Increase test coverage (#2505)
Browse files Browse the repository at this point in the history
* Increase test coverage

* Add test for sort

* fix sort test

* Delete -

Co-authored-by: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com>
  • Loading branch information
gkorland and sazzad16 committed Apr 9, 2021
1 parent 7a1f93b commit e419941
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/main/java/redis/clients/jedis/Jedis.java
Original file line number Diff line number Diff line change
Expand Up @@ -1658,6 +1658,19 @@ public String srandmember(final String key) {
return client.getBulkReply();
}

/**
* Return a random elements from a Set, without removing the elements. If the Set is empty or the
* key does not exist, an empty list is returned.
* <p>
* The SPOP command does a similar work but the returned elements is popped (removed) from the Set.
* <p>
* Time complexity O(1)
* @param key
* @param count if positive, return an array of distinct elements.
* If negative the behavior changes and the command is allowed to
* return the same element multiple times
* @return list of elements
*/
@Override
public List<String> srandmember(final String key, final int count) {
checkIsInMultiOrPipeline();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,12 @@ public void unlink() {
reply = jedis.unlink("foo1", "foo2");
assertEquals(0, reply);

// Test single key unlink
jedis.set("foo1", "bar1");

reply = jedis.unlink("foo1");
assertEquals(1, reply);

// Binary ...
jedis.set(bfoo1, bbar1);
jedis.set(bfoo2, bbar2);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
import static redis.clients.jedis.tests.utils.ByteArrayUtil.byteArrayCollectionRemoveAll;

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.junit.Test;
Expand Down Expand Up @@ -512,8 +514,15 @@ public void srandmember() {
assertTrue("a".equals(member) || "b".equals(member));
assertEquals(2, jedis.smembers("foo").size());

List<String> members = jedis.srandmember("foo", 2);
members.sort(Comparator.naturalOrder());
assertEquals( Arrays.asList("a", "b"), members);

member = jedis.srandmember("bar");
assertNull(member);

members = jedis.srandmember("bar", 2);
assertEquals(0, members.size());

// Binary
jedis.sadd(bfoo, ba);
Expand All @@ -523,9 +532,15 @@ public void srandmember() {

assertTrue(Arrays.equals(ba, bmember) || Arrays.equals(bb, bmember));
assertEquals(2, jedis.smembers(bfoo).size());

List<byte[]> bmembers = jedis.srandmember(bfoo, 2);
assertEquals(2, bmembers.size());

bmember = jedis.srandmember(bbar);
assertNull(bmember);

members = jedis.srandmember("bbar", 2);
assertEquals(0, members.size());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

public class SortingCommandsTest extends JedisCommandTestBase {
final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 };
final byte[] bfoodest = { 0x01, 0x02, 0x03, 0x04, 0x05 };
final byte[] bbar1 = { 0x05, 0x06, 0x07, 0x08, '1' };
final byte[] bbar2 = { 0x05, 0x06, 0x07, 0x08, '2' };
final byte[] bbar3 = { 0x05, 0x06, 0x07, 0x08, '3' };
Expand Down Expand Up @@ -77,7 +78,14 @@ public void sortBy() {
expected.add("1");

assertEquals(expected, result);

// Sort to dest key
Long resultCount = jedis.sort("foo", sp, "foodest");
assertEquals(3L, resultCount.longValue());

result = jedis.lpop("foodest", 5);
assertEquals(expected, result);

// Binary
jedis.lpush(bfoo, b2);
jedis.lpush(bfoo, b3);
Expand All @@ -98,7 +106,13 @@ public void sortBy() {
bexpected.add(b1);

assertByteArrayListEquals(bexpected, bresult);

// Sort to dest key
resultCount = jedis.sort(bfoo, sp, bfoodest);
assertEquals(3L, resultCount.longValue());

bresult = jedis.lpop(bfoodest, 5);
assertByteArrayListEquals(bexpected, bresult);
}

@Test
Expand Down

0 comments on commit e419941

Please sign in to comment.