X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-segmented-journal%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fakka%2Fsegjournal%2FSegmentedFileJournalTest.java;h=4d3db7980e2116ef013f62b13ed120ddb43c33f9;hb=HEAD;hp=7db0d4b87e0da205f4a227385d01ec46e4cae6a6;hpb=a47589fdd131b1f2363b331a3dd9266a08c40a57;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/src/test/java/org/opendaylight/controller/akka/segjournal/SegmentedFileJournalTest.java b/opendaylight/md-sal/sal-akka-segmented-journal/src/test/java/org/opendaylight/controller/akka/segjournal/SegmentedFileJournalTest.java index 7db0d4b87e..4d3db7980e 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/src/test/java/org/opendaylight/controller/akka/segjournal/SegmentedFileJournalTest.java +++ b/opendaylight/md-sal/sal-akka-segmented-journal/src/test/java/org/opendaylight/controller/akka/segjournal/SegmentedFileJournalTest.java @@ -7,13 +7,12 @@ */ package org.opendaylight.controller.akka.segjournal; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -24,7 +23,7 @@ import akka.persistence.AtomicWrite; import akka.persistence.PersistentRepr; import akka.testkit.CallingThreadDispatcher; import akka.testkit.javadsl.TestKit; -import io.atomix.storage.StorageLevel; +import io.atomix.storage.journal.StorageLevel; import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -36,50 +35,59 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import org.opendaylight.controller.akka.segjournal.SegmentedJournalActor.AsyncMessage; import org.opendaylight.controller.akka.segjournal.SegmentedJournalActor.WriteMessages; import scala.concurrent.Future; -public class SegmentedFileJournalTest { +@ExtendWith(MockitoExtension.class) +class SegmentedFileJournalTest { private static final File DIRECTORY = new File("target/sfj-test"); private static final int SEGMENT_SIZE = 1024 * 1024; private static final int MESSAGE_SIZE = 512 * 1024; + private static final int FLUSH_SIZE = 16 * 1024; private static ActorSystem SYSTEM; + @Mock + private Consumer firstCallback; + private TestKit kit; private ActorRef actor; - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { SYSTEM = ActorSystem.create("test"); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { TestKit.shutdownActorSystem(SYSTEM); SYSTEM = null; } - @Before - public void before() { + @BeforeEach + void before() { kit = new TestKit(SYSTEM); FileUtils.deleteQuietly(DIRECTORY); actor = actor(); } - @After - public void after() { + @AfterEach + void after() { actor.tell(PoisonPill.getInstance(), ActorRef.noSender()); + FileUtils.deleteQuietly(DIRECTORY); } @Test - public void testDeleteAfterStop() { + void testDeleteAfterStop() { // Preliminary setup final WriteMessages write = new WriteMessages(); final Future> first = write.add(AtomicWrite.apply(PersistentRepr.apply("first", 1, "foo", @@ -108,7 +116,7 @@ public class SegmentedFileJournalTest { } @Test - public void testSegmentation() throws IOException { + void testSegmentation() throws IOException { // We want to have roughly three segments final LargePayload payload = new LargePayload(); @@ -133,7 +141,7 @@ public class SegmentedFileJournalTest { } @Test - public void testComplexDeletesAndPartialReplays() throws Exception { + void testComplexDeletesAndPartialReplays() throws Exception { for (int i = 0; i <= 4; i++) { writeBigPaylod(); } @@ -203,7 +211,7 @@ public class SegmentedFileJournalTest { private ActorRef actor() { return kit.childActorOf(SegmentedJournalActor.props("foo", DIRECTORY, StorageLevel.DISK, MESSAGE_SIZE, - SEGMENT_SIZE).withDispatcher(CallingThreadDispatcher.Id())); + SEGMENT_SIZE, FLUSH_SIZE).withDispatcher(CallingThreadDispatcher.Id())); } private void deleteEntries(final long deleteTo) { @@ -219,8 +227,8 @@ public class SegmentedFileJournalTest { } private void assertReplayCount(final int expected) { - Consumer firstCallback = mock(Consumer.class); - doNothing().when(firstCallback).accept(any(PersistentRepr.class)); + // Cast fixes an Eclipse warning 'generic array created' + reset((Object) firstCallback); AsyncMessage replay = SegmentedJournalActor.replayMessages(0, Long.MAX_VALUE, Long.MAX_VALUE, firstCallback); actor.tell(replay, ActorRef.noSender()); @@ -243,10 +251,10 @@ public class SegmentedFileJournalTest { return future.value().get().get(); } - private static final class LargePayload implements Serializable { + static final class LargePayload implements Serializable { + @java.io.Serial private static final long serialVersionUID = 1L; final byte[] bytes = new byte[MESSAGE_SIZE / 2]; - } }