mirror of
https://github.com/vacp2p/status-linea-besu.git
synced 2026-01-08 21:38:15 -05:00
services - migrate to junit 5 (#5613)
* services to junit5 * removed some junit4 engine imports * updated some plugins test since these extend from testutil KV storage * one more form of EPL v2 Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> --------- Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
This commit is contained in:
@@ -17,8 +17,6 @@ dependencies {
|
||||
testImplementation 'org.assertj:assertj-core'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
|
||||
// integration test dependencies.
|
||||
integrationTestImplementation project(':testutil')
|
||||
integrationTestImplementation 'org.assertj:assertj-core'
|
||||
@@ -27,6 +25,4 @@ dependencies {
|
||||
integrationTestImplementation 'org.junit.jupiter:junit-jupiter-api'
|
||||
integrationTestImplementation 'org.mockito:mockito-core'
|
||||
integrationTestImplementation 'org.testcontainers:testcontainers'
|
||||
|
||||
integrationTestRuntimeOnly 'org.junit.jupiter:junit-jupiter'
|
||||
}
|
||||
|
||||
@@ -126,7 +126,8 @@ downloadLicenses {
|
||||
],
|
||||
(epl2) : [
|
||||
'Eclipse Public License - v 2.0',
|
||||
'Eclipse Public License version 2.0'
|
||||
'Eclipse Public License version 2.0',
|
||||
'Eclipse Public License v2.0'
|
||||
],
|
||||
(mit) : [
|
||||
'MIT',
|
||||
|
||||
@@ -70,8 +70,6 @@ dependencies {
|
||||
testImplementation 'org.mockito:mockito-core'
|
||||
testImplementation 'org.mockito:mockito-junit-jupiter'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
|
||||
testSupportImplementation 'org.mockito:mockito-core'
|
||||
|
||||
annotationProcessor 'com.google.dagger:dagger-compiler'
|
||||
|
||||
@@ -55,6 +55,7 @@ dependencies {
|
||||
testImplementation 'org.assertj:assertj-core'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.mockito:mockito-core'
|
||||
testImplementation 'org.mockito:mockito-junit-jupiter'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.tuweni.bytes.Bytes;
|
||||
|
||||
public class OptimisticTransactionDBRocksDBColumnarKeyValueStorageTest
|
||||
extends RocksDBColumnarKeyValueStorageTest {
|
||||
|
||||
@@ -32,7 +34,9 @@ public class OptimisticTransactionDBRocksDBColumnarKeyValueStorageTest
|
||||
protected SegmentedKeyValueStorage<RocksDbSegmentIdentifier> createSegmentedStore()
|
||||
throws Exception {
|
||||
return new OptimisticRocksDBColumnarKeyValueStorage(
|
||||
new RocksDBConfigurationBuilder().databaseDir(folder.newFolder().toPath()).build(),
|
||||
new RocksDBConfigurationBuilder()
|
||||
.databaseDir(folder.resolve(Bytes.random(9).toString()))
|
||||
.build(),
|
||||
Arrays.asList(TestSegment.FOO, TestSegment.BAR),
|
||||
List.of(),
|
||||
new NoOpMetricsSystem(),
|
||||
|
||||
@@ -35,13 +35,12 @@ import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
public abstract class RocksDBColumnarKeyValueStorageTest extends AbstractKeyValueStorageTest {
|
||||
|
||||
@Rule public final TemporaryFolder folder = new TemporaryFolder();
|
||||
@TempDir public Path folder;
|
||||
|
||||
@Test
|
||||
public void assertClear() throws Exception {
|
||||
@@ -178,8 +177,8 @@ public abstract class RocksDBColumnarKeyValueStorageTest extends AbstractKeyValu
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dbShouldIgnoreExperimentalSegmentsIfNotExisted() throws Exception {
|
||||
final Path testPath = folder.newFolder().toPath();
|
||||
public void dbShouldIgnoreExperimentalSegmentsIfNotExisted(@TempDir final Path testPath)
|
||||
throws Exception {
|
||||
// Create new db should ignore experimental column family
|
||||
SegmentedKeyValueStorage<RocksDbSegmentIdentifier> store =
|
||||
createSegmentedStore(
|
||||
@@ -195,8 +194,8 @@ public abstract class RocksDBColumnarKeyValueStorageTest extends AbstractKeyValu
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dbShouldNotIgnoreExperimentalSegmentsIfExisted() throws Exception {
|
||||
final Path testPath = folder.newFolder().toPath();
|
||||
public void dbShouldNotIgnoreExperimentalSegmentsIfExisted(@TempDir final Path testPath)
|
||||
throws Exception {
|
||||
// Create new db with experimental column family
|
||||
SegmentedKeyValueStorage<RocksDbSegmentIdentifier> store =
|
||||
createSegmentedStore(
|
||||
@@ -225,8 +224,8 @@ public abstract class RocksDBColumnarKeyValueStorageTest extends AbstractKeyValu
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dbWillBeBackwardIncompatibleAfterExperimentalSegmentsAreAdded() throws Exception {
|
||||
final Path testPath = folder.newFolder().toPath();
|
||||
public void dbWillBeBackwardIncompatibleAfterExperimentalSegmentsAreAdded(
|
||||
@TempDir final Path testPath) throws Exception {
|
||||
// Create new db should ignore experimental column family
|
||||
SegmentedKeyValueStorage<RocksDbSegmentIdentifier> store =
|
||||
createSegmentedStore(
|
||||
|
||||
@@ -35,24 +35,24 @@ import org.hyperledger.besu.plugin.services.storage.rocksdb.configuration.RocksD
|
||||
import org.hyperledger.besu.plugin.services.storage.rocksdb.configuration.RocksDBConfigurationBuilder;
|
||||
import org.hyperledger.besu.plugin.services.storage.rocksdb.unsegmented.RocksDBKeyValueStorage;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.LongSupplier;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class RocksDBKeyValueStorageTest extends AbstractKeyValueStorageTest {
|
||||
|
||||
@Mock private ObservableMetricsSystem metricsSystemMock;
|
||||
@Mock private LabelledMetric<OperationTimer> labelledMetricOperationTimerMock;
|
||||
@Mock private LabelledMetric<Counter> labelledMetricCounterMock;
|
||||
@Mock private OperationTimer operationTimerMock;
|
||||
@Rule public final TemporaryFolder folder = new TemporaryFolder();
|
||||
@TempDir static Path folder;
|
||||
|
||||
@Override
|
||||
protected KeyValueStorage createStore() throws Exception {
|
||||
@@ -131,6 +131,6 @@ public class RocksDBKeyValueStorageTest extends AbstractKeyValueStorageTest {
|
||||
}
|
||||
|
||||
private RocksDBConfiguration config() throws Exception {
|
||||
return new RocksDBConfigurationBuilder().databaseDir(folder.newFolder().toPath()).build();
|
||||
return new RocksDBConfigurationBuilder().databaseDir(getTempSubFolder(folder)).build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class TransactionDBRocksDBColumnarKeyValueStorageTest
|
||||
protected SegmentedKeyValueStorage<RocksDbSegmentIdentifier> createSegmentedStore()
|
||||
throws Exception {
|
||||
return new TransactionDBRocksDBColumnarKeyValueStorage(
|
||||
new RocksDBConfigurationBuilder().databaseDir(folder.newFolder().toPath()).build(),
|
||||
new RocksDBConfigurationBuilder().databaseDir(getTempSubFolder(folder)).build(),
|
||||
Arrays.asList(TestSegment.FOO, TestSegment.BAR),
|
||||
List.of(),
|
||||
new NoOpMetricsSystem(),
|
||||
|
||||
@@ -33,8 +33,6 @@ dependencies {
|
||||
implementation 'com.google.guava:guava'
|
||||
|
||||
testImplementation project(':testutil')
|
||||
testImplementation 'junit:junit'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.assertj:assertj-core'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.hyperledger.besu.kvstore.AbstractKeyValueStorageTest;
|
||||
import org.hyperledger.besu.plugin.services.storage.KeyValueStorage;
|
||||
import org.hyperledger.besu.plugin.services.storage.KeyValueStorageTransaction;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class LimitedInMemoryKeyValueStorageTest extends AbstractKeyValueStorageTest {
|
||||
|
||||
|
||||
@@ -37,11 +37,9 @@ dependencies {
|
||||
implementation 'io.opentelemetry:opentelemetry-api'
|
||||
implementation 'com.google.guava:guava'
|
||||
|
||||
testImplementation 'junit:junit'
|
||||
testImplementation 'org.assertj:assertj-core'
|
||||
testImplementation 'org.awaitility:awaitility'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.mockito:mockito-core'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
testImplementation 'org.mockito:mockito-junit-jupiter'
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class AsyncOperationProcessorTest {
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.hyperledger.besu.plugin.services.metrics.Counter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class BatchingReadPipeTest {
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import static org.hyperledger.besu.metrics.noop.NoOpMetricsSystem.NO_OP_COUNTER;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class CompleterStageTest {
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import static org.mockito.Mockito.when;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class FlatMapProcessorTest {
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.hyperledger.besu.metrics.noop.NoOpMetricsSystem.NO_OP_COUNTER;
|
||||
|
||||
import com.google.common.collect.Iterators;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class IteratorSourceStageTest {
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class MapProcessorTest {
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.hyperledger.besu.plugin.services.metrics.Counter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class PipeTest {
|
||||
private final Counter inputCounter = mock(Counter.class);
|
||||
|
||||
@@ -51,8 +51,8 @@ import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class PipelineBuilderTest {
|
||||
|
||||
@@ -66,7 +66,7 @@ public class PipelineBuilderTest {
|
||||
|
||||
private final ExecutorService executorService = Executors.newCachedThreadPool(THREAD_FACTORY);
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void afterClass() throws Exception {
|
||||
executorService.shutdownNow();
|
||||
if (!executorService.awaitTermination(10, SECONDS)) {
|
||||
|
||||
@@ -16,7 +16,7 @@ package org.hyperledger.besu.services.pipeline;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.hyperledger.besu.metrics.noop.NoOpMetricsSystem.NO_OP_COUNTER;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.lenient;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
@@ -24,13 +24,13 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
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.MockitoJUnitRunner;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class ProcessingStageTest {
|
||||
|
||||
private final Pipe<String> inputPipe =
|
||||
@@ -40,10 +40,11 @@ public class ProcessingStageTest {
|
||||
@Mock private Processor<String, String> singleStep;
|
||||
private ProcessingStage<String, String> stage;
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
stage = new ProcessingStage<>("name", inputPipe, outputPipe, singleStep);
|
||||
doAnswer(
|
||||
lenient()
|
||||
.doAnswer(
|
||||
invocation -> {
|
||||
outputPipe.put(inputPipe.get().toLowerCase(Locale.UK));
|
||||
return 1;
|
||||
|
||||
@@ -18,7 +18,7 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoInteractions;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class SharedWritePipeTest {
|
||||
|
||||
|
||||
@@ -40,9 +40,6 @@ dependencies {
|
||||
implementation 'io.vertx:vertx-core'
|
||||
implementation 'org.apache.tuweni:tuweni-bytes'
|
||||
|
||||
testImplementation 'junit:junit'
|
||||
testImplementation 'org.assertj:assertj-core'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
|
||||
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.util.concurrent.CountDownLatch;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.apache.tuweni.bytes.Bytes;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
abstract class AbstractTaskQueueTest<T extends TaskCollection<Bytes>> {
|
||||
|
||||
|
||||
@@ -23,13 +23,13 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.tuweni.bytes.Bytes;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class CachingTaskCollectionTest {
|
||||
private TaskCollection<Bytes> wrappedTaskCollection;
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setup() {
|
||||
wrappedTaskCollection = new InMemoryTaskQueue<>();
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class InMemoryTasksPriorityQueuesTest {
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ dependencies {
|
||||
implementation 'com.google.guava:guava'
|
||||
implementation 'com.squareup.okhttp3:okhttp'
|
||||
implementation 'io.vertx:vertx-core'
|
||||
implementation 'junit:junit'
|
||||
implementation 'org.junit.jupiter:junit-jupiter'
|
||||
implementation 'org.apache.tuweni:tuweni-bytes'
|
||||
implementation 'org.apache.tuweni:tuweni-io'
|
||||
implementation 'org.apache.tuweni:tuweni-toml'
|
||||
|
||||
@@ -21,6 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.hyperledger.besu.plugin.services.storage.KeyValueStorage;
|
||||
import org.hyperledger.besu.plugin.services.storage.KeyValueStorageTransaction;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -32,11 +33,12 @@ import java.util.stream.Stream;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.apache.tuweni.bytes.Bytes;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** The Abstract key value storage test. */
|
||||
@Ignore
|
||||
@Disabled
|
||||
public abstract class AbstractKeyValueStorageTest {
|
||||
|
||||
/**
|
||||
@@ -352,12 +354,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionPutAfterCommit() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.put(bytesOf(1), bytesOf(1));
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.put(bytesOf(1), bytesOf(1));
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -365,12 +371,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionRemoveAfterCommit() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.remove(bytesOf(1));
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.remove(bytesOf(1));
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -378,12 +388,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionPutAfterRollback() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.put(bytesOf(1), bytesOf(1));
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.put(bytesOf(1), bytesOf(1));
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -391,12 +405,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionRemoveAfterRollback() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.remove(bytesOf(1));
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.remove(bytesOf(1));
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -404,12 +422,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionCommitAfterRollback() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.commit();
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.commit();
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -417,12 +439,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionCommitTwice() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.commit();
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.commit();
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -430,12 +456,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionRollbackAfterCommit() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.rollback();
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.commit();
|
||||
tx.rollback();
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -443,12 +473,16 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test
|
||||
public void transactionRollbackTwice() throws Exception {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.rollback();
|
||||
Assertions.assertThatThrownBy(
|
||||
() -> {
|
||||
final KeyValueStorage store = createStore();
|
||||
final KeyValueStorageTransaction tx = store.startTransaction();
|
||||
tx.rollback();
|
||||
tx.rollback();
|
||||
})
|
||||
.isInstanceOf(IllegalStateException.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -547,4 +581,15 @@ public abstract class AbstractKeyValueStorageTest {
|
||||
protected byte[] bytesOf(final int... bytes) {
|
||||
return Bytes.of(bytes).toArrayUnsafe();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a sub folder from the given path, that will not conflict with other folders.
|
||||
*
|
||||
* @param folder the folder in which to create the sub folder
|
||||
* @return the path representing the sub folder
|
||||
* @throws Exception if the folder cannot be created
|
||||
*/
|
||||
protected Path getTempSubFolder(final Path folder) throws Exception {
|
||||
return java.nio.file.Files.createTempDirectory(folder, null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user