pivotal-eshu commented on a change in pull request #6524:
URL: https://github.com/apache/geode/pull/6524#discussion_r641076184



##########
File path: 
geode-apis-compatible-with-redis/src/test/java/org/apache/geode/redis/internal/data/RedisSortedSetTest.java
##########
@@ -232,6 +237,45 @@ public void 
should_calculateSize_closeToROSSize_ofIndividualInstanceWithMultiple
     assertThat(actual).isCloseTo(expected, offset);
   }
 
+  private final String member1 = "member1";
+  private final String member2 = "member2";
+  private final String score1 = "5.55555";
+  private final String score2 = "209030.31";
+
+  @Test
+  public void zremCanRemoveMembersToBeRemoved() {
+    String member3 = "member3";
+    String score3 = "998955255.66361191";
+    RedisSortedSet sortedSet =
+        spy(createRedisSortedSet(score1, member1, score2, member2, score3, 
member3));
+    Region<RedisKey, RedisData> region = uncheckedCast(mock(Region.class));
+    RedisKey key = new RedisKey();
+    ArrayList<byte[]> membersToRemove = new ArrayList<>();
+    membersToRemove.add(Coder.stringToBytes("nonExisting"));
+    membersToRemove.add(Coder.stringToBytes(member1));
+    membersToRemove.add(Coder.stringToBytes(member3));
+
+    long removed = sortedSet.zrem(region, key, membersToRemove);
+
+    assertThat(removed).isEqualTo(2);
+    verify(sortedSet).storeChanges(eq(region), eq(key), 
any(RemsDeltaInfo.class));
+  }
+
+  @Test
+  public void memberRemoveCanRemoveMemberInSortedSet() {
+    RedisSortedSet sortedSet = createRedisSortedSet(score1, member1, score2, 
member2);
+    RedisSortedSet sortedSet2 = createRedisSortedSet(score2, member2);
+    int originalSize = sortedSet.getSizeInBytes();
+
+    byte[] returnValue = sortedSet.memberRemove(Coder.stringToBytes(member1));
+    int removedSize =
+        sortedSet.calculateSizeOfFieldValuePair(Coder.stringToBytes(member1), 
returnValue);
+
+    assertThat(sortedSet).isEqualTo(sortedSet2);
+    assertThat(returnValue).isEqualTo(Coder.stringToBytes(score1));
+    assertThat(sortedSet.getSizeInBytes()).isEqualTo(originalSize - 
removedSize);
+  }

Review comment:
       This is just to test in the unit level to verify -- we want to have 
coverage at lower level if possible.
   
   I added a test case using ReflectionObjectSizer.sizeOf but need to be 
changed.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to