|
16 | 16 | */ |
17 | 17 | package org.apache.rocketmq.tieredstore.file; |
18 | 18 |
|
19 | | -import java.io.IOException; |
20 | | -import java.nio.ByteBuffer; |
21 | | -import java.util.ArrayList; |
22 | | -import java.util.List; |
| 19 | +import org.apache.rocketmq.common.BoundaryType; |
23 | 20 | import org.apache.rocketmq.common.message.MessageQueue; |
24 | 21 | import org.apache.rocketmq.tieredstore.TieredStoreTestUtil; |
25 | 22 | import org.apache.rocketmq.tieredstore.common.FileSegmentType; |
|
35 | 32 | import org.junit.Before; |
36 | 33 | import org.junit.Test; |
37 | 34 |
|
| 35 | +import java.io.IOException; |
| 36 | +import java.nio.ByteBuffer; |
| 37 | +import java.util.ArrayList; |
| 38 | +import java.util.List; |
| 39 | + |
38 | 40 | public class TieredFlatFileTest { |
39 | 41 |
|
40 | 42 | private final String storePath = TieredStoreTestUtil.getRandomStorePath(); |
@@ -301,4 +303,40 @@ public void testRollingNewFile() { |
301 | 303 | fileQueue.rollingNewFile(); |
302 | 304 | Assert.assertEquals(2, fileQueue.getFileSegmentCount()); |
303 | 305 | } |
| 306 | + |
| 307 | + @Test |
| 308 | + public void testGetFileByTime() { |
| 309 | + String filePath = TieredStoreUtil.toPath(queue); |
| 310 | + TieredFlatFile tieredFlatFile = fileQueueFactory.createFlatFileForCommitLog(filePath); |
| 311 | + TieredFileSegment fileSegment1 = new MemoryFileSegment(FileSegmentType.CONSUME_QUEUE, queue, 1100, storeConfig); |
| 312 | + fileSegment1.setMinTimestamp(100); |
| 313 | + fileSegment1.setMaxTimestamp(200); |
| 314 | + |
| 315 | + TieredFileSegment fileSegment2 = new MemoryFileSegment(FileSegmentType.CONSUME_QUEUE, queue, 1100, storeConfig); |
| 316 | + fileSegment2.setMinTimestamp(200); |
| 317 | + fileSegment2.setMaxTimestamp(300); |
| 318 | + |
| 319 | + tieredFlatFile.getFileSegmentList().add(fileSegment1); |
| 320 | + tieredFlatFile.getFileSegmentList().add(fileSegment2); |
| 321 | + |
| 322 | + TieredFileSegment segmentUpper = tieredFlatFile.getFileByTime(400, BoundaryType.UPPER); |
| 323 | + Assert.assertEquals(fileSegment2, segmentUpper); |
| 324 | + |
| 325 | + TieredFileSegment segmentLower = tieredFlatFile.getFileByTime(400, BoundaryType.LOWER); |
| 326 | + Assert.assertEquals(fileSegment2, segmentLower); |
| 327 | + |
| 328 | + |
| 329 | + TieredFileSegment segmentUpper2 = tieredFlatFile.getFileByTime(0, BoundaryType.UPPER); |
| 330 | + Assert.assertEquals(fileSegment1, segmentUpper2); |
| 331 | + |
| 332 | + TieredFileSegment segmentLower2 = tieredFlatFile.getFileByTime(0, BoundaryType.LOWER); |
| 333 | + Assert.assertEquals(fileSegment1, segmentLower2); |
| 334 | + |
| 335 | + |
| 336 | + TieredFileSegment segmentUpper3 = tieredFlatFile.getFileByTime(200, BoundaryType.UPPER); |
| 337 | + Assert.assertEquals(fileSegment1, segmentUpper3); |
| 338 | + |
| 339 | + TieredFileSegment segmentLower3 = tieredFlatFile.getFileByTime(200, BoundaryType.LOWER); |
| 340 | + Assert.assertEquals(fileSegment2, segmentLower3); |
| 341 | + } |
304 | 342 | } |
0 commit comments