cadonna commented on a change in pull request #9779:
URL: https://github.com/apache/kafka/pull/9779#discussion_r596741592



##########
File path: 
streams/src/test/java/org/apache/kafka/streams/state/internals/ThreadCacheTest.java
##########
@@ -252,20 +262,43 @@ public void shouldGetSameKeyAsPeekNext() {
         assertEquals(iterator.peekNextKey(), iterator.next().key);
     }
 
+    @Test
+    public void shouldGetSameKeyAsPeekNextReverseRange() {
+        final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
+        final Bytes theByte = Bytes.wrap(new byte[]{1});
+        cache.put(namespace, theByte, dirtyEntry(theByte.get()));
+        final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
cache.reverseRange(namespace, Bytes.wrap(new byte[]{0}), theByte);
+        assertEquals(iterator.peekNextKey(), iterator.next().key);

Review comment:
       nit: see my comment about `assertThat()` above. 

##########
File path: 
streams/src/test/java/org/apache/kafka/streams/state/internals/ThreadCacheTest.java
##########
@@ -252,20 +262,43 @@ public void shouldGetSameKeyAsPeekNext() {
         assertEquals(iterator.peekNextKey(), iterator.next().key);
     }
 
+    @Test
+    public void shouldGetSameKeyAsPeekNextReverseRange() {
+        final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
+        final Bytes theByte = Bytes.wrap(new byte[]{1});
+        cache.put(namespace, theByte, dirtyEntry(theByte.get()));
+        final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
cache.reverseRange(namespace, Bytes.wrap(new byte[]{0}), theByte);
+        assertEquals(iterator.peekNextKey(), iterator.next().key);
+    }
+
     @Test
     public void shouldThrowIfNoPeekNextKey() {
         final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
         final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
cache.range(namespace, Bytes.wrap(new byte[]{0}), Bytes.wrap(new byte[]{1}));
         assertThrows(NoSuchElementException.class, iterator::peekNextKey);
     }
 
+    @Test
+    public void shouldThrowIfNoPeekNextKeyReverseRange() {
+        final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
+        final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
cache.reverseRange(namespace, Bytes.wrap(new byte[]{0}), Bytes.wrap(new 
byte[]{1}));
+        assertThrows(NoSuchElementException.class, iterator::peekNextKey);
+    }
+

Review comment:
       nit: could you try to deduplicate code here and in the other unit tests? 
Here for example, you could have one method like this:
   
   ```
       private void shouldThrowIfNoPeekNextKey(final 
Supplier<MemoryLRUCacheBytesIterator> methodUnderTest) {
           final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
methodUnderTest.get();
           assertThrows(NoSuchElementException.class, iterator::peekNextKey);
       }
   ```
   
   and then two public tests
   
   ```
       @Test
       public void shouldThrowIfNoPeekNextKeyRange() {
           final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
           shouldThrowIfNoPeekNextKey(() -> cache.range(namespace, 
Bytes.wrap(new byte[]{0}), Bytes.wrap(new byte[]{1})));
       }
   
       @Test
       public void shouldThrowIfNoPeekNextKeyReverseRange() {
           final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
           shouldThrowIfNoPeekNextKey(() -> cache.reverseRange(namespace, 
Bytes.wrap(new byte[]{0}), Bytes.wrap(new byte[]{1})));
       }
   ```
   
   Admittedly, in this specific case, we would not win much but for other unit 
tests in this test class it may be worth. Try and then decide if it is worth or 
not.  

##########
File path: 
streams/src/test/java/org/apache/kafka/streams/state/internals/ThreadCacheTest.java
##########
@@ -243,6 +243,16 @@ public void shouldPeekNextKey() {
         assertEquals(theByte, iterator.peekNextKey());
     }
 
+    @Test
+    public void shouldPeekNextKeyReverseRange() {
+        final ThreadCache cache = new ThreadCache(logContext, 10000L, new 
MockStreamsMetrics(new Metrics()));
+        final Bytes theByte = Bytes.wrap(new byte[]{1});
+        cache.put(namespace, theByte, dirtyEntry(theByte.get()));
+        final ThreadCache.MemoryLRUCacheBytesIterator iterator = 
cache.reverseRange(namespace, Bytes.wrap(new byte[]{0}), theByte);
+        assertEquals(theByte, iterator.peekNextKey());
+        assertEquals(theByte, iterator.peekNextKey());

Review comment:
       nit: Could you please use `assertThat(iterator.peekNextKey(), is(the 
Byte))` here?




----------------------------------------------------------------
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