Refactor JournalSegmentDescriptor
[controller.git] / atomix-storage / src / test / java / io / atomix / storage / journal / JournalSegmentDescriptorTest.java
index 6db959dc3fa3cebf9b1db5152d752d18f47fcfa0..5de345e48157528563d1a78d7eed7e0c97611b82 100644 (file)
  */
 package io.atomix.storage.journal;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.nio.ByteBuffer;
-
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
 /**
  * Segment descriptor test.
  *
  * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
  */
-public class JournalSegmentDescriptorTest {
-
-  /**
-   * Tests the segment descriptor builder.
-   */
-  @Test
-  public void testDescriptorBuilder() {
-    JournalSegmentDescriptor descriptor = JournalSegmentDescriptor.builder(ByteBuffer.allocate(JournalSegmentDescriptor.BYTES))
-        .withId(2)
-        .withIndex(1025)
-        .withMaxSegmentSize(1024 * 1024)
-        .withMaxEntries(2048)
-        .build();
-
-    assertEquals(2, descriptor.id());
-    assertEquals(JournalSegmentDescriptor.VERSION, descriptor.version());
-    assertEquals(1025, descriptor.index());
-    assertEquals(1024 * 1024, descriptor.maxSegmentSize());
-    assertEquals(2048, descriptor.maxEntries());
-
-    assertEquals(0, descriptor.updated());
-    long time = System.currentTimeMillis();
-    descriptor.update(time);
-    assertEquals(time, descriptor.updated());
-  }
-
-  /**
-   * Tests copying the segment descriptor.
-   */
-  @Test
-  public void testDescriptorCopy() {
-    JournalSegmentDescriptor descriptor = JournalSegmentDescriptor.builder()
-        .withId(2)
-        .withIndex(1025)
-        .withMaxSegmentSize(1024 * 1024)
-        .withMaxEntries(2048)
-        .build();
-
-    long time = System.currentTimeMillis();
-    descriptor.update(time);
+class JournalSegmentDescriptorTest {
+    /**
+     * Tests the segment descriptor builder.
+     */
+    @Test
+    void testDescriptorBuilder() {
+        final var descriptor = JournalSegmentDescriptor.builder()
+            .withId(2)
+            .withIndex(1025)
+            .withMaxSegmentSize(1024 * 1024)
+            .withMaxEntries(2048)
+            .withUpdated(0)
+            .build();
 
-    descriptor = descriptor.copyTo(ByteBuffer.allocate(JournalSegmentDescriptor.BYTES));
+        assertEquals(2, descriptor.id());
+        assertEquals(JournalSegmentDescriptor.VERSION, descriptor.version());
+        assertEquals(1025, descriptor.index());
+        assertEquals(1024 * 1024, descriptor.maxSegmentSize());
+        assertEquals(2048, descriptor.maxEntries());
+        assertEquals(0, descriptor.updated());
+    }
 
-    assertEquals(2, descriptor.id());
-    assertEquals(JournalSegmentDescriptor.VERSION, descriptor.version());
-    assertEquals(1025, descriptor.index());
-    assertEquals(1024 * 1024, descriptor.maxSegmentSize());
-    assertEquals(2048, descriptor.maxEntries());
-    assertEquals(time, descriptor.updated());
-  }
+    /**
+     * Tests copying the segment descriptor.
+     */
+    @Test
+    void testToArray() {
+        assertArrayEquals(new byte[] {
+            0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 1, 0, 16, 0, 0, 0, 0, 8, 0, 8, 7, 6, 5,
+            4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        }, JournalSegmentDescriptor.builder()
+            .withId(2)
+            .withIndex(1025)
+            .withMaxSegmentSize(1024 * 1024)
+            .withMaxEntries(2048)
+            .withUpdated(0x0807060504030201L)
+            .build()
+            .toArray());
+    }
 }