mumrah commented on code in PR #19214: URL: https://github.com/apache/kafka/pull/19214#discussion_r2001161714
########## clients/src/test/java/org/apache/kafka/common/record/FileRecordsTest.java: ########## @@ -518,6 +523,176 @@ public void testBytesLengthOfWriteTo() throws IOException { verify(channel).transferFrom(any(), anyLong(), eq((long) size - firstWritten)); } + /** + * Test two condition + * 1. If the target offset equals to the base offset of the first batch + * 2. If the target offset < the base offset of the first batch + */ + @ParameterizedTest + @ValueSource(longs = {5, 10}) + public void testSearchForOffsetWithSizeLastOffsetCallCountFirstBatchMatch(long baseOffset) throws IOException { + File mockFile = mock(File.class); + FileChannel mockChannel = mock(FileChannel.class); + FileLogInputStream.FileChannelRecordBatch batch = mock(FileLogInputStream.FileChannelRecordBatch.class); + when(batch.baseOffset()).thenReturn(baseOffset); + + FileRecords fileRecords = Mockito.spy(new FileRecords(mockFile, mockChannel, 0, 100, false)); + mockFileRecordBatches(fileRecords, batch); + + FileRecords.LogOffsetPosition result = fileRecords.searchForOffsetWithSize(5L, 0); + + assertEquals(FileRecords.LogOffsetPosition.fromBatch(batch), result); + verify(batch, never()).lastOffset(); + } + + @Test + public void testSearchForOffsetWithSizeLastOffsetCallCountFirstBatchLastOffsetMatch() throws IOException { Review Comment: I would probably name them sequentially like `testSearchForOffsetWithSize1`, `testSearchForOffsetWithSize2`, etc and leave a comment explaining the scenario. I really don't like super long test names. Like @kirktrue said, you end up just not reading them. -- 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. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org