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