diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 3b10bc6e..ebeb05ab 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -9,27 +9,13 @@ on:
jobs:
build:
runs-on: ubuntu-latest
- strategy:
- matrix:
- # Including "ubuntu2204" in the version is a temporary fix to the direct download URL while we transition
- # between 4 and 6
- mongodb-version: [4.0.18, ubuntu2204-6.0.6]
- java-version: [1.8]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Setup Java JDK
- uses: actions/setup-java@v1.4.3
- # The Java version to make available on the path. Takes a whole or semver Java version, or 1.x syntax (e.g. 1.8 => Java 8.x). Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28
+ uses: actions/setup-java@v4
with:
- java-version: ${{ matrix.java-version }}
- - name: Install and Start MongoDB
- run: |
- wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-${{ matrix.mongodb-version }}.tgz
- tar xfz mongodb-linux-x86_64-${{ matrix.mongodb-version }}.tgz
- export PATH=`pwd`/mongodb-linux-x86_64-${{ matrix.mongodb-version }}/bin:$PATH
- mkdir -p data/db
- mongod --dbpath=data/db &
- mongod --version
+ java-version: '21'
+ distribution: 'temurin'
- name: Run Maven tests
run: mvn test
diff --git a/accession-commons-core/pom.xml b/accession-commons-core/pom.xml
index 4bc203f1..088d511b 100644
--- a/accession-commons-core/pom.xml
+++ b/accession-commons-core/pom.xml
@@ -21,6 +21,10 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
@@ -29,8 +33,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
diff --git a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunction.java b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunction.java
index 4a942322..2f335881 100644
--- a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunction.java
+++ b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunction.java
@@ -20,9 +20,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.xml.bind.DatatypeConverter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.HexFormat;
import java.util.function.Function;
/**
@@ -38,7 +38,7 @@ public String apply(String summary) {
}
private static String generateSha1FromBytes(byte[] nameBytes) {
- return DatatypeConverter.printHexBinary(toSHA1(nameBytes));
+ return HexFormat.of().withUpperCase().formatHex(toSHA1(nameBytes));
}
private static byte[] toSHA1(byte[] bytes) {
diff --git a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerAdvice.java b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerAdvice.java
index e25fe58b..11528a0a 100644
--- a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerAdvice.java
+++ b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerAdvice.java
@@ -41,8 +41,8 @@
import uk.ac.ebi.ampt2d.commons.accession.rest.dto.ErrorMessage;
import uk.ac.ebi.ampt2d.commons.accession.rest.validation.CollectionValidator;
-import javax.servlet.http.HttpServletRequest;
-import javax.validation.ValidationException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.ValidationException;
import java.net.URI;
import java.util.stream.Collectors;
diff --git a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/controllers/BasicRestController.java b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/controllers/BasicRestController.java
index 13759423..6b839bb9 100644
--- a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/controllers/BasicRestController.java
+++ b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/controllers/BasicRestController.java
@@ -33,7 +33,7 @@
import uk.ac.ebi.ampt2d.commons.accession.rest.dto.AccessionVersionsResponseDTO;
import uk.ac.ebi.ampt2d.commons.accession.rest.dto.GetOrCreateAccessionResponseDTO;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
diff --git a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/validation/CollectionValidator.java b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/validation/CollectionValidator.java
index 8b38bdf7..a65dfc6d 100644
--- a/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/validation/CollectionValidator.java
+++ b/accession-commons-core/src/main/java/uk/ac/ebi/ampt2d/commons/accession/rest/validation/CollectionValidator.java
@@ -21,8 +21,8 @@
import org.springframework.validation.Validator;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
-import javax.validation.ConstraintViolation;
-import javax.validation.ValidationException;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ValidationException;
import java.util.Collection;
import java.util.Set;
diff --git a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/exceptions/MissingUnsavedAccessionsExceptionTest.java b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/exceptions/MissingUnsavedAccessionsExceptionTest.java
index 1a1acce5..76d1a155 100644
--- a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/exceptions/MissingUnsavedAccessionsExceptionTest.java
+++ b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/exceptions/MissingUnsavedAccessionsExceptionTest.java
@@ -17,13 +17,13 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core.exceptions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class MissingUnsavedAccessionsExceptionTest {
diff --git a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/SingleAccessionGeneratorTest.java b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/SingleAccessionGeneratorTest.java
index 175daf44..a9519d0e 100644
--- a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/SingleAccessionGeneratorTest.java
+++ b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/SingleAccessionGeneratorTest.java
@@ -17,7 +17,7 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.generators;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
import uk.ac.ebi.ampt2d.commons.accession.core.models.SaveResponse;
import uk.ac.ebi.ampt2d.commons.accession.hashing.SHA1HashingFunction;
@@ -30,7 +30,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class SingleAccessionGeneratorTest {
private static String APPLICATION_INSTANCE_ID = "TEST_APPPLICATION_INSTANCE_ID";
diff --git a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunctionTest.java b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunctionTest.java
index 7790e407..d3b51707 100644
--- a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunctionTest.java
+++ b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/hashing/SHA1HashingFunctionTest.java
@@ -17,11 +17,13 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.hashing;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.function.Function;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
public class SHA1HashingFunctionTest {
@Test
@@ -32,8 +34,8 @@ public void testGenerateAccession() {
String object1Accession = hashingFunction.apply(object1);
String object2Accession = hashingFunction.apply(object2);
String object3Accession = hashingFunction.apply(object2);
- Assert.assertNotEquals(object1Accession, object2Accession);
- Assert.assertEquals(object2Accession, object3Accession);
- Assert.assertEquals(40, object1Accession.length());
+ assertNotEquals(object1Accession, object2Accession);
+ assertEquals(object2Accession, object3Accession);
+ assertEquals(40, object1Accession.length());
}
-}
\ No newline at end of file
+}
diff --git a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/utils/ExponentialBackOffTest.java b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/utils/ExponentialBackOffTest.java
index c970c5e9..c56aa2a1 100644
--- a/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/utils/ExponentialBackOffTest.java
+++ b/accession-commons-core/src/test/java/uk/ac/ebi/ampt2d/commons/accession/utils/ExponentialBackOffTest.java
@@ -17,13 +17,14 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.utils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import uk.ac.ebi.ampt2d.commons.accession.utils.exceptions.ExponentialBackOffMaxRetriesRuntimeException;
import java.util.function.Supplier;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class ExponentialBackOffTest {
@@ -44,31 +45,39 @@ public String get() {
}
}
- @Test(expected = ExponentialBackOffMaxRetriesRuntimeException.class)
+ @Test
public void testRunnableDefaultTotalAttempts() {
ExtendedRunnable runnable = new ExtendedRunnable();
- ExponentialBackOff.execute((Runnable) runnable);
+ assertThrows(ExponentialBackOffMaxRetriesRuntimeException.class, () -> {
+ ExponentialBackOff.execute((Runnable) runnable);
+ });
assertEquals(ExponentialBackOff.DEFAULT_TOTAL_ATTEMPTS, runnable.numRun);
}
- @Test(expected = ExponentialBackOffMaxRetriesRuntimeException.class)
+ @Test
public void testFunctionDefaultTotalAttempts() {
ExtendedRunnable runnable = new ExtendedRunnable();
- ExponentialBackOff.execute((Supplier) runnable);
+ assertThrows(ExponentialBackOffMaxRetriesRuntimeException.class, () -> {
+ ExponentialBackOff.execute((Supplier) runnable);
+ });
assertEquals(ExponentialBackOff.DEFAULT_TOTAL_ATTEMPTS, runnable.numRun);
}
- @Test(expected = ExponentialBackOffMaxRetriesRuntimeException.class)
+ @Test
public void testRunnableTotalAttempts() {
ExtendedRunnable runnable = new ExtendedRunnable();
- ExponentialBackOff.execute((Runnable) runnable, 3, 1000);
+ assertThrows(ExponentialBackOffMaxRetriesRuntimeException.class, () -> {
+ ExponentialBackOff.execute((Runnable) runnable, 3, 1000);
+ });
assertEquals(3, runnable.numRun);
}
- @Test(expected = ExponentialBackOffMaxRetriesRuntimeException.class)
+ @Test
public void testFunctionTotalAttempts() {
ExtendedRunnable runnable = new ExtendedRunnable();
- ExponentialBackOff.execute((Supplier) runnable, 3, 1000);
+ assertThrows(ExponentialBackOffMaxRetriesRuntimeException.class, () -> {
+ ExponentialBackOff.execute((Supplier) runnable, 3, 1000);
+ });
assertEquals(3, runnable.numRun);
}
diff --git a/accession-commons-jpa/pom.xml b/accession-commons-jpa/pom.xml
index ce57997b..7a421f4d 100644
--- a/accession-commons-jpa/pom.xml
+++ b/accession-commons-jpa/pom.xml
@@ -39,20 +39,26 @@
io.cucumber
- cucumber-java8
- 2.4.0
+ cucumber-java
+ 7.18.1
test
io.cucumber
- cucumber-junit
- 2.4.0
+ cucumber-spring
+ 7.18.1
test
io.cucumber
- cucumber-spring
- 2.4.0
+ cucumber-junit-platform-engine
+ 7.18.1
+ test
+
+
+ org.junit.platform
+ junit-platform-suite
+ test
@@ -62,8 +68,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
diff --git a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/AccessionedEntity.java b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/AccessionedEntity.java
index d8916939..ee3ec674 100644
--- a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/AccessionedEntity.java
+++ b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/AccessionedEntity.java
@@ -21,11 +21,11 @@
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import uk.ac.ebi.ampt2d.commons.accession.persistence.models.IAccessionedObject;
-import javax.persistence.Column;
-import javax.persistence.EntityListeners;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Column;
+import jakarta.persistence.EntityListeners;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
diff --git a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/InactiveAccessionEntity.java b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/InactiveAccessionEntity.java
index afb20956..eea6d8a8 100644
--- a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/InactiveAccessionEntity.java
+++ b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/InactiveAccessionEntity.java
@@ -19,11 +19,11 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.models.IAccessionedObject;
-import javax.persistence.Column;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Column;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
diff --git a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/OperationEntity.java b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/OperationEntity.java
index fa6bb95b..5f13249f 100644
--- a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/OperationEntity.java
+++ b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/entities/OperationEntity.java
@@ -21,14 +21,14 @@
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import uk.ac.ebi.ampt2d.commons.accession.core.models.EventType;
-import javax.persistence.Column;
-import javax.persistence.EntityListeners;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
+import jakarta.persistence.Column;
+import jakarta.persistence.EntityListeners;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
import java.time.LocalDateTime;
/**
diff --git a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BasicJpaAccessionedObjectCustomRepositoryImpl.java b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BasicJpaAccessionedObjectCustomRepositoryImpl.java
index f622ce78..7dd252a1 100644
--- a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BasicJpaAccessionedObjectCustomRepositoryImpl.java
+++ b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BasicJpaAccessionedObjectCustomRepositoryImpl.java
@@ -28,7 +28,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.repositories.IAccessionedObjectCustomRepository;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.AccessionedEntity;
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
import java.io.Serializable;
import java.util.List;
import java.util.Stack;
diff --git a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/service/BasicJpaInactiveAccessionService.java b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/service/BasicJpaInactiveAccessionService.java
index fa834ef7..6b007c19 100644
--- a/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/service/BasicJpaInactiveAccessionService.java
+++ b/accession-commons-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/service/BasicJpaInactiveAccessionService.java
@@ -17,7 +17,6 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.service;
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.EventType;
import uk.ac.ebi.ampt2d.commons.accession.core.models.IEvent;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.InactiveAccessionEntity;
@@ -102,7 +101,7 @@ public List> getEvents(ACCESSION accession) {
@Override
public List extends IEvent> getAllEventsInvolvedIn(ACCESSION accession) {
- throw new NotImplementedException();
+ throw new UnsupportedOperationException("Not implemented");
}
}
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
index f5ec3e83..6bf7ed43 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
@@ -17,21 +17,21 @@
*/
package uk.ac.ebi.ampt2d.commons.accession;
-import cucumber.api.CucumberOptions;
-import cucumber.api.junit.Cucumber;
-import org.junit.runner.RunWith;
+import org.junit.platform.suite.api.ConfigurationParameter;
+import org.junit.platform.suite.api.IncludeEngines;
+import org.junit.platform.suite.api.SelectClasspathResource;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Cucumber.class)
-@CucumberOptions(
- features = {
- "src/test/resources/features/accession.feature",
- "src/test/resources/features/modification.feature",
- "src/test/resources/features/merge.feature",
- "src/test/resources/features/retrieval.feature"},
- plugin = {
- "pretty",
- "html:target/cucumber"},
- tags = {"not @ignore"})
+import static io.cucumber.junit.platform.engine.Constants.FILTER_TAGS_PROPERTY_NAME;
+import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;
+import static io.cucumber.junit.platform.engine.Constants.PLUGIN_PROPERTY_NAME;
+
+@Suite
+@IncludeEngines("cucumber")
+@SelectClasspathResource("features")
+@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "uk.ac.ebi.ampt2d.commons.accession")
+@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty, html:target/cucumber-reports.html")
+@ConfigurationParameter(key = FILTER_TAGS_PROPERTY_NAME, value = "not @ignore")
public class AccessioningAcceptanceTests {
}
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
index f135f733..82b1f931 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
@@ -17,20 +17,14 @@
*/
package uk.ac.ebi.ampt2d.commons.accession;
-import cucumber.api.java.en.And;
-import cucumber.api.java.en.Given;
-import cucumber.api.java.en.Then;
-import cucumber.api.java.en.When;
-import org.junit.Ignore;
-import org.junit.runner.RunWith;
+import io.cucumber.java.en.And;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDoesNotExistException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionMergedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.HashAlreadyExistsException;
-import uk.ac.ebi.ampt2d.test.configuration.CucumberTestConfiguration;
import uk.ac.ebi.ampt2d.test.models.TestModel;
import uk.ac.ebi.ampt2d.test.testers.AccessioningServiceTester;
@@ -38,12 +32,8 @@
import java.util.List;
import java.util.stream.Collectors;
-import static org.hibernate.validator.internal.util.Contracts.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@Ignore
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = {CucumberTestConfiguration.class})
-@DirtiesContext
public class AccessioningServiceStepDefinitions {
@Autowired
@@ -138,6 +128,6 @@ public void userRetrievesAccessionsIdServiceA(String accessionIds) {
@Then("^user receives no data$")
public void userReceivesNoData() {
- assertTrue(tester.getSingleVersionResults().getData().isEmpty(),"User received data");
+ assertTrue(tester.getSingleVersionResults().getData().isEmpty(), "User received data");
}
}
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java
new file mode 100644
index 00000000..d9b21896
--- /dev/null
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java
@@ -0,0 +1,29 @@
+/*
+ *
+ * Copyright 2018 EMBL - European Bioinformatics Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package uk.ac.ebi.ampt2d.commons.accession;
+
+import io.cucumber.spring.CucumberContextConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
+import uk.ac.ebi.ampt2d.test.configuration.CucumberTestConfiguration;
+
+@CucumberContextConfiguration
+@SpringBootTest(classes = {CucumberTestConfiguration.class})
+@DirtiesContext
+public class CucumberSpringConfiguration {
+}
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicAccessioningServiceTest.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicAccessioningServiceTest.java
index 08ac4f90..06f72466 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicAccessioningServiceTest.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicAccessioningServiceTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDeprecatedException;
@@ -39,12 +37,12 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestJpaDatabaseServiceTestConfiguration.class})
public class BasicAccessioningServiceTest {
@@ -127,17 +125,21 @@ public void accessioningMultipleTimesTheSameObjectReturnsTheSameAccession()
TestTransaction.end();
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void updateFailsWhenAccessionDoesNotExist() throws AccessionDoesNotExistException,
HashAlreadyExistsException, AccessionMergedException, AccessionDeprecatedException {
- accessioningService.update("id-service-test-3", 1, TestModel.of("test-3"));
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ accessioningService.update("id-service-test-3", 1, TestModel.of("test-3"));
+ });
}
- @Test(expected = HashAlreadyExistsException.class)
+ @Test
public void updateFailsWhenAccessionAlreadyExists() throws AccessionDoesNotExistException,
HashAlreadyExistsException, AccessionCouldNotBeGeneratedException, AccessionMergedException, AccessionDeprecatedException {
accessioningService.getOrCreate(Arrays.asList(TestModel.of("test-3"), TestModel.of("test-4")), APPLICATION_INSTANCE_ID);
- accessioningService.update("id-service-test-3", 1, TestModel.of("test-4"));
+ assertThrows(HashAlreadyExistsException.class, () -> {
+ accessioningService.update("id-service-test-3", 1, TestModel.of("test-4"));
+ });
}
@Test
@@ -211,18 +213,22 @@ private void doDeprecateAndAssert(String accession) throws AccessionMergedExcept
}
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void testDeprecateAccessionDoesNotExist() throws AccessionCouldNotBeGeneratedException,
AccessionMergedException, AccessionDoesNotExistException, AccessionDeprecatedException {
- accessioningService.deprecate("id-does-not-exist", "Reasons");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ accessioningService.deprecate("id-does-not-exist", "Reasons");
+ });
}
- @Test(expected = AccessionDeprecatedException.class)
+ @Test
public void testDeprecateTwice() throws AccessionCouldNotBeGeneratedException, AccessionMergedException,
AccessionDoesNotExistException, AccessionDeprecatedException {
accessioningService.getOrCreate(Arrays.asList(TestModel.of("test-deprecate-version-2")), APPLICATION_INSTANCE_ID);
accessioningService.deprecate("id-service-test-deprecate-version-2", "Reasons");
- accessioningService.deprecate("id-service-test-deprecate-version-2", "Reasons");
+ assertThrows(AccessionDeprecatedException.class, () -> {
+ accessioningService.deprecate("id-service-test-deprecate-version-2", "Reasons");
+ });
}
@Test
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/DecoratedAccessioningServiceTest.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/DecoratedAccessioningServiceTest.java
index 68cf8ec0..bca45a81 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/DecoratedAccessioningServiceTest.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/DecoratedAccessioningServiceTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDeprecatedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDoesNotExistException;
@@ -37,9 +35,9 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestJpaDatabaseServiceTestConfiguration.class})
public class DecoratedAccessioningServiceTest {
@@ -79,26 +77,32 @@ public void assertGetByAccession()
assertEquals("prefix-id-service-service-test-1", accession.getAccession());
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void assertGetByAccessionWrongPrefix()
throws AccessionCouldNotBeGeneratedException, AccessionDeprecatedException,
AccessionMergedException, AccessionDoesNotExistException {
assertGetOrCreate();
- getPrefixedService().getByAccession("service-service-test-1");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ getPrefixedService().getByAccession("service-service-test-1");
+ });
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void assertGetByAccessionAndVersionWrongPrefix() throws AccessionCouldNotBeGeneratedException,
AccessionMergedException, AccessionDoesNotExistException, AccessionDeprecatedException {
assertGetOrCreate();
- getPrefixedService().getByAccessionAndVersion("service-service-test-1", 1);
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ getPrefixedService().getByAccessionAndVersion("service-service-test-1", 1);
+ });
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void assertGetByAccessionWrongPrefixShort() throws AccessionCouldNotBeGeneratedException,
AccessionMergedException, AccessionDoesNotExistException, AccessionDeprecatedException {
assertGetOrCreate();
- getPrefixedService().getByAccessionAndVersion("s", 1);
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ getPrefixedService().getByAccessionAndVersion("s", 1);
+ });
}
@Test
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BaseJpaAccessionedObjectRepositoryTest.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BaseJpaAccessionedObjectRepositoryTest.java
index f250f0ef..0b0a9019 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BaseJpaAccessionedObjectRepositoryTest.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/repositories/BaseJpaAccessionedObjectRepositoryTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.repositories;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
import uk.ac.ebi.ampt2d.test.configuration.TestJpaDatabaseServiceTestConfiguration;
import uk.ac.ebi.ampt2d.test.models.TestModel;
@@ -32,10 +30,9 @@
import java.time.LocalDateTime;
import java.util.Arrays;
-import static junit.framework.TestCase.assertEquals;
-import static junit.framework.TestCase.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestJpaDatabaseServiceTestConfiguration.class})
public class BaseJpaAccessionedObjectRepositoryTest {
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/services/JpaBasicSpringDataRepositoryDatabaseServiceTest.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/services/JpaBasicSpringDataRepositoryDatabaseServiceTest.java
index 21c7b224..f9a8d1d8 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/services/JpaBasicSpringDataRepositoryDatabaseServiceTest.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/services/JpaBasicSpringDataRepositoryDatabaseServiceTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.services;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.DatabaseService;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
@@ -48,12 +46,11 @@
import java.util.List;
import java.util.Optional;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestJpaDatabaseServiceTestConfiguration.class})
public class JpaBasicSpringDataRepositoryDatabaseServiceTest {
@@ -97,10 +94,12 @@ public void saveUniqueElementsAndFindByAccessionReturnsEachAccession() throws Ex
assertEquals("something3", result.get(2).getData().getValue());
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void saveUniqueElementsAndFindByAccessionThatDoesNotExistThrowsException() throws Exception {
service.save(Arrays.asList(TEST_MODEL_1, TEST_MODEL_2, TEST_MODEL_3));
- service.findLastVersionByAccession("doesnotexist");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ service.findLastVersionByAccession("doesnotexist");
+ });
}
@Test
@@ -166,17 +165,21 @@ public void testCompleteSaveIfSameAccessionDifferentHash() throws AccessionCould
TestTransaction.end();
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void updateWithoutExistingAccessionFails() throws AccessionDoesNotExistException,
HashAlreadyExistsException, AccessionDeprecatedException, AccessionMergedException {
- service.update("a2", "h1", TestModel.of("something2"), 1);
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ service.update("a2", "h1", TestModel.of("something2"), 1);
+ });
}
- @Test(expected = HashAlreadyExistsException.class)
+ @Test
public void updateWithExistingObjectFails() throws AccessionDoesNotExistException,
HashAlreadyExistsException, AccessionDeprecatedException, AccessionMergedException {
service.save(Arrays.asList(new AccessionWrapper<>("a2", "h1", TestModel.of("something2"))));
- service.update("a2", "h1", TestModel.of("something2"), 1);
+ assertThrows(HashAlreadyExistsException.class, () -> {
+ service.update("a2", "h1", TestModel.of("something2"), 1);
+ });
}
@Test
@@ -280,10 +283,12 @@ public void testFindByAccessionAndVersion() throws AccessionDoesNotExistExceptio
assertEquals(2, accessionsOfVersion2.getVersion());
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void testDeprecateNotExisting() throws AccessionDoesNotExistException, AccessionDeprecatedException, AccessionMergedException {
assertEquals(0, repository.findByAccession("a1").size());
- service.deprecate("a1", "reasons");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ service.deprecate("a1", "reasons");
+ });
}
@Test
@@ -354,25 +359,29 @@ public void testMerge() throws AccessionDoesNotExistException, AccessionDeprecat
assertEquals("a1 has been already merged into a2", exception.getMessage());
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void testMergeAccessionDoesNotExistOrigin() throws AccessionDoesNotExistException,
AccessionDeprecatedException, AccessionMergedException {
service.save(Arrays.asList(new AccessionWrapper("a1", "h1", TestModel.of("something1"), 1)));
assertNotNull(service.findByAccessionVersion("a1", 1));
- service.merge("doesnotexist", "a1", "reasons");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ service.merge("doesnotexist", "a1", "reasons");
+ });
}
- @Test(expected = AccessionDoesNotExistException.class)
+ @Test
public void testMergeAccessionDoesNotExistDestination() throws AccessionDoesNotExistException,
AccessionDeprecatedException, AccessionMergedException {
service.save(Arrays.asList(new AccessionWrapper("a1", "h1", TestModel.of("something1"), 1)));
assertNotNull(service.findByAccessionVersion("a1", 1));
- service.merge("a1", "doesnotexist", "reasons");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ service.merge("a1", "doesnotexist", "reasons");
+ });
}
- @Test(expected = AccessionDeprecatedException.class)
+ @Test
public void testMergeAccessionDeprecatedOrigin() throws AccessionDoesNotExistException,
AccessionDeprecatedException, AccessionMergedException {
service.save(Arrays.asList(new AccessionWrapper("a1", "h1", TestModel.of("something1"), 1)));
@@ -381,10 +390,12 @@ public void testMergeAccessionDeprecatedOrigin() throws AccessionDoesNotExistExc
assertNotNull(service.findByAccessionVersion("a2", 1));
service.deprecate("a1", "blah");
- service.merge("a1", "a2", "reasons");
+ assertThrows(AccessionDeprecatedException.class, () -> {
+ service.merge("a1", "a2", "reasons");
+ });
}
- @Test(expected = AccessionDeprecatedException.class)
+ @Test
public void testMergeAccessionDeprecatedDestination() throws AccessionDoesNotExistException,
AccessionDeprecatedException, AccessionMergedException {
service.save(Arrays.asList(new AccessionWrapper("a1", "h1", TestModel.of("something1"), 1)));
@@ -393,7 +404,9 @@ public void testMergeAccessionDeprecatedDestination() throws AccessionDoesNotExi
assertNotNull(service.findByAccessionVersion("a2", 1));
service.deprecate("a2", "blah");
- service.merge("a1", "a2", "reasons");
+ assertThrows(AccessionDeprecatedException.class, () -> {
+ service.merge("a1", "a2", "reasons");
+ });
}
-}
\ No newline at end of file
+}
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerTest.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerTest.java
index c6e7fb97..31a6843d 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerTest.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/BasicRestControllerTest.java
@@ -17,8 +17,7 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.rest;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.json.AutoConfigureJsonTesters;
@@ -27,7 +26,6 @@
import org.springframework.boot.test.json.JacksonTester;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.ResultActions;
@@ -50,7 +48,6 @@
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrlPattern;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@AutoConfigureJsonTesters
@@ -229,7 +226,7 @@ public void testGetAccession() throws Exception {
public void testCollectionOfDTOValidation() throws Exception {
doAccession(status().is4xxClientError(), null, null)
.andExpect(jsonPath("$.exception")
- .value("javax.validation.ValidationException"))
+ .value("jakarta.validation.ValidationException"))
.andExpect(jsonPath("$.message")
.value("basicRestModelList[0] : Please provide a value\n" +
"basicRestModelList[1] : Please provide a value\n"));
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestEntity.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestEntity.java
index 4051db6c..939d02dd 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestEntity.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestEntity.java
@@ -21,7 +21,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.AccessionedEntity;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
@Entity
public class TestEntity extends AccessionedEntity implements TestModel {
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestInactiveAccessionEntity.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestInactiveAccessionEntity.java
index d60c813a..632bbb77 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestInactiveAccessionEntity.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestInactiveAccessionEntity.java
@@ -20,7 +20,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.InactiveAccessionEntity;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
import java.time.LocalDateTime;
@Entity
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestRepositoryImpl.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestRepositoryImpl.java
index 6825faa7..5f1eca1f 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestRepositoryImpl.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestRepositoryImpl.java
@@ -21,7 +21,7 @@
import org.springframework.transaction.PlatformTransactionManager;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.repositories.BasicJpaAccessionedObjectCustomRepositoryImpl;
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
public class TestRepositoryImpl extends BasicJpaAccessionedObjectCustomRepositoryImpl {
diff --git a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestStringOperationEntity.java b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestStringOperationEntity.java
index 8d80a388..ddd608e5 100644
--- a/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestStringOperationEntity.java
+++ b/accession-commons-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestStringOperationEntity.java
@@ -19,7 +19,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.OperationEntity;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
@Entity
public class TestStringOperationEntity extends OperationEntity {
diff --git a/accession-commons-mongodb/pom.xml b/accession-commons-mongodb/pom.xml
index a60a2bed..801defe2 100644
--- a/accession-commons-mongodb/pom.xml
+++ b/accession-commons-mongodb/pom.xml
@@ -33,27 +33,39 @@
spring-boot-starter-data-mongodb
- com.lordofthejars
- nosqlunit-mongodb
- 1.0.0-rc.5
+ org.testcontainers
+ mongodb
+ 1.19.8
test
- io.cucumber
- cucumber-java8
- 2.4.0
+ org.testcontainers
+ junit-jupiter
+ 1.19.8
test
io.cucumber
- cucumber-junit
- 2.4.0
+ cucumber-java
+ 7.18.1
test
io.cucumber
cucumber-spring
- 2.4.0
+ 7.18.1
+ test
+
+
+ io.cucumber
+ cucumber-junit-platform-engine
+ 7.18.1
+ test
+
+
+ org.junit.platform
+ junit-platform-suite
+ test
@@ -63,8 +75,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
diff --git a/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/document/EventDocument.java b/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/document/EventDocument.java
index 7263c098..5f7fa289 100644
--- a/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/document/EventDocument.java
+++ b/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/document/EventDocument.java
@@ -23,7 +23,7 @@
import uk.ac.ebi.ampt2d.commons.accession.core.models.EventType;
import uk.ac.ebi.ampt2d.commons.accession.core.models.IEvent;
-import javax.persistence.Id;
+import org.springframework.data.annotation.Id;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
diff --git a/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/BasicMongoDbAccessionedCustomRepositoryImpl.java b/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/BasicMongoDbAccessionedCustomRepositoryImpl.java
index c9232f77..41abc33f 100644
--- a/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/BasicMongoDbAccessionedCustomRepositoryImpl.java
+++ b/accession-commons-mongodb/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/BasicMongoDbAccessionedCustomRepositoryImpl.java
@@ -22,6 +22,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;
+import org.springframework.data.mongodb.BulkOperationException;
import org.springframework.data.mongodb.core.BulkOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import uk.ac.ebi.ampt2d.commons.accession.core.models.SaveResponse;
@@ -62,12 +63,28 @@ public SaveResponse insert(List documents) {
try {
insert.execute();
- } catch (DuplicateKeyException e) {
- MongoBulkWriteException bulkWriteException = ((MongoBulkWriteException) e.getCause());
- bulkWriteException.getWriteErrors().forEach(error -> {
+ } catch (BulkOperationException e) {
+ // Handle Spring Data MongoDB 4.x BulkOperationException
+ e.getErrors().forEach(error -> {
String errorId = reportBulkOperationException(error).orElseThrow(() -> e);
erroneousIds.add(errorId);
});
+ } catch (DuplicateKeyException e) {
+ // Handle Spring Data wrapped exception (older versions)
+ if (e.getCause() instanceof MongoBulkWriteException bulkWriteException) {
+ bulkWriteException.getWriteErrors().forEach(error -> {
+ String errorId = reportBulkOperationException(error).orElseThrow(() -> e);
+ erroneousIds.add(errorId);
+ });
+ } else {
+ throw e;
+ }
+ } catch (MongoBulkWriteException e) {
+ // Handle direct MongoDB exception
+ e.getWriteErrors().forEach(error -> {
+ String errorId = reportBulkOperationException(error).orElseThrow(() -> new RuntimeException(e));
+ erroneousIds.add(errorId);
+ });
} catch (RuntimeException e) {
logger.error("Unexpected runtime exception in MongoDB bulk insert", e);
throw e;
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
index f5ec3e83..6bf7ed43 100644
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningAcceptanceTests.java
@@ -17,21 +17,21 @@
*/
package uk.ac.ebi.ampt2d.commons.accession;
-import cucumber.api.CucumberOptions;
-import cucumber.api.junit.Cucumber;
-import org.junit.runner.RunWith;
+import org.junit.platform.suite.api.ConfigurationParameter;
+import org.junit.platform.suite.api.IncludeEngines;
+import org.junit.platform.suite.api.SelectClasspathResource;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Cucumber.class)
-@CucumberOptions(
- features = {
- "src/test/resources/features/accession.feature",
- "src/test/resources/features/modification.feature",
- "src/test/resources/features/merge.feature",
- "src/test/resources/features/retrieval.feature"},
- plugin = {
- "pretty",
- "html:target/cucumber"},
- tags = {"not @ignore"})
+import static io.cucumber.junit.platform.engine.Constants.FILTER_TAGS_PROPERTY_NAME;
+import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;
+import static io.cucumber.junit.platform.engine.Constants.PLUGIN_PROPERTY_NAME;
+
+@Suite
+@IncludeEngines("cucumber")
+@SelectClasspathResource("features")
+@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "uk.ac.ebi.ampt2d.commons.accession")
+@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty, html:target/cucumber-reports.html")
+@ConfigurationParameter(key = FILTER_TAGS_PROPERTY_NAME, value = "not @ignore")
public class AccessioningAcceptanceTests {
}
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
index 35782f57..53e26f75 100644
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/AccessioningServiceStepDefinitions.java
@@ -17,55 +17,37 @@
*/
package uk.ac.ebi.ampt2d.commons.accession;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbRule;
-import cucumber.api.java.Before;
-import cucumber.api.java.en.And;
-import cucumber.api.java.en.Given;
-import cucumber.api.java.en.Then;
-import cucumber.api.java.en.When;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
+import io.cucumber.java.Before;
+import io.cucumber.java.en.And;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.data.mongodb.core.MongoTemplate;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDoesNotExistException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionMergedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.HashAlreadyExistsException;
-import uk.ac.ebi.ampt2d.test.configuration.MongoDbCucumberTestConfiguration;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import uk.ac.ebi.ampt2d.test.rule.FixSpringMongoDbRule;
import uk.ac.ebi.ampt2d.test.testers.AccessioningServiceTester;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
-import static org.hibernate.validator.internal.util.Contracts.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@Ignore
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = {MongoDbCucumberTestConfiguration.class})
-@DirtiesContext
public class AccessioningServiceStepDefinitions {
- @Rule
- public MongoDbRule mongoDbRule = new FixSpringMongoDbRule(MongoDbConfigurationBuilder.mongoDb()
- .databaseName("accession-test").build());
-
- //Required for nosql unit
@Autowired
- private ApplicationContext applicationContext;
+ private MongoTemplate mongoTemplate;
@Autowired
private AccessioningServiceTester tester;
@Before
public void setUp() {
- mongoDbRule.getDatabaseOperation().deleteAll();
+ // Clean up all collections before each scenario
+ mongoTemplate.getCollectionNames().forEach(name -> mongoTemplate.dropCollection(name));
}
@Given("^already accessioned ([\\w-,]+)$")
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java
new file mode 100644
index 00000000..17e2bda4
--- /dev/null
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/CucumberSpringConfiguration.java
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright 2018 EMBL - European Bioinformatics Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package uk.ac.ebi.ampt2d.commons.accession;
+
+import io.cucumber.spring.CucumberContextConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import uk.ac.ebi.ampt2d.test.configuration.MongoDbCucumberTestConfiguration;
+
+@CucumberContextConfiguration
+@SpringBootTest(classes = {MongoDbCucumberTestConfiguration.class})
+@DirtiesContext
+public class CucumberSpringConfiguration {
+
+ static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0");
+
+ static {
+ mongoDBContainer.start();
+ }
+
+ @DynamicPropertySource
+ static void setProperties(DynamicPropertyRegistry registry) {
+ registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
+ }
+}
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/AccessionedDocumentRepositoryTest.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/AccessionedDocumentRepositoryTest.java
index 942fe30f..1a69ae82 100644
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/AccessionedDocumentRepositoryTest.java
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/repository/AccessionedDocumentRepositoryTest.java
@@ -17,46 +17,49 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.mongodb.repository;
-import com.lordofthejars.nosqlunit.annotation.UsingDataSet;
-import com.lordofthejars.nosqlunit.core.LoadStrategyEnum;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import uk.ac.ebi.ampt2d.commons.accession.core.models.SaveResponse;
import uk.ac.ebi.ampt2d.test.configuration.MongoDbTestConfiguration;
import uk.ac.ebi.ampt2d.test.persistence.document.TestDocument;
import uk.ac.ebi.ampt2d.test.persistence.repository.TestRepository;
-import uk.ac.ebi.ampt2d.test.rule.FixSpringMongoDbRule;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
-import static junit.framework.TestCase.assertTrue;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static uk.ac.ebi.ampt2d.test.persistence.document.TestDocument.document;
-@RunWith(SpringRunner.class)
@SpringBootTest(classes = {MongoDbTestConfiguration.class})
+@Testcontainers
public class AccessionedDocumentRepositoryTest {
- @Autowired
- private TestRepository repository;
+ @Container
+ static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0");
- @Rule
- public MongoDbRule mongoDbRule = new FixSpringMongoDbRule(MongoDbConfigurationBuilder.mongoDb()
- .databaseName("accession-test").build());
+ @DynamicPropertySource
+ static void setProperties(DynamicPropertyRegistry registry) {
+ registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
+ }
- //Required for nosql unit
@Autowired
- private ApplicationContext applicationContext;
+ private TestRepository repository;
+
+ @BeforeEach
+ public void setUp() {
+ repository.deleteAll();
+ }
private class TestInsert {
@@ -105,32 +108,30 @@ private TestInsert insertDocuments(int totalDocuments) {
return new TestInsert(documents);
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsert() {
assertEquals(0, repository.count());
insertDocuments(1).assertInsertOk();
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertMultiple() {
assertEquals(0, repository.count());
insertDocuments(2).assertInsertOk();
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
- @Test(expected = RuntimeException.class)
+ @Test
public void testInsertDuplicatedHashInBatch() {
assertEquals(0, repository.count());
- insertDocuments(document(1), document(2), document(1));
+ assertThrows(RuntimeException.class, () -> {
+ insertDocuments(document(1), document(2), document(1));
+ });
}
private TestInsert insertDocuments(TestDocument... documents) {
return new TestInsert(Arrays.asList(documents));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertDuplicatedHashDifferentBatchesBeginning() {
assertEquals(0, repository.count());
@@ -148,7 +149,6 @@ public void testInsertDuplicatedHashDifferentBatchesBeginning() {
.assertAccessionHasNotBeenSaved("a1");
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertDuplicatedHashDifferentBatchesMiddle() {
assertEquals(0, repository.count());
@@ -166,7 +166,6 @@ public void testInsertDuplicatedHashDifferentBatchesMiddle() {
.assertAccessionHasNotBeenSaved("a1");
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertDuplicatedHashDifferentBatchesEnd() {
assertEquals(0, repository.count());
@@ -184,7 +183,6 @@ public void testInsertDuplicatedHashDifferentBatchesEnd() {
.assertAccessionHasNotBeenSaved("a0");
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertDuplicatedHashDifferentAccession() {
assertEquals(0, repository.count());
@@ -202,7 +200,6 @@ public void testInsertDuplicatedHashDifferentAccession() {
.assertAccessionHasNotBeenSaved("a7");
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertMultipleDuplicatedHash() {
assertEquals(0, repository.count());
@@ -230,7 +227,6 @@ public void testInsertMultipleDuplicatedHash() {
.assertAccessionHasNotBeenSaved("a9");
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testInsertFindById() {
insertDocuments(1);
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbHistoryServiceTest.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbHistoryServiceTest.java
index d30626fe..4e74f055 100644
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbHistoryServiceTest.java
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbHistoryServiceTest.java
@@ -17,43 +17,45 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.mongodb.service;
-import com.lordofthejars.nosqlunit.annotation.UsingDataSet;
-import com.lordofthejars.nosqlunit.core.LoadStrategyEnum;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import uk.ac.ebi.ampt2d.commons.accession.core.AccessioningService;
import uk.ac.ebi.ampt2d.commons.accession.core.HistoryService;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDoesNotExistException;
import uk.ac.ebi.ampt2d.test.configuration.MongoDbTestConfiguration;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import uk.ac.ebi.ampt2d.test.rule.FixSpringMongoDbRule;
import uk.ac.ebi.ampt2d.test.testers.AccessioningServiceTester;
import uk.ac.ebi.ampt2d.test.testers.HistoryTester;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static uk.ac.ebi.ampt2d.test.testers.HistoryTester.assertEventIsCreated;
import static uk.ac.ebi.ampt2d.test.testers.HistoryTester.assertEventIsDeprecated;
import static uk.ac.ebi.ampt2d.test.testers.HistoryTester.assertEventIsMerged;
import static uk.ac.ebi.ampt2d.test.testers.HistoryTester.assertEventIsPatch;
import static uk.ac.ebi.ampt2d.test.testers.HistoryTester.assertEventIsUpdated;
-@RunWith(SpringRunner.class)
@SpringBootTest(classes = {MongoDbTestConfiguration.class})
+@Testcontainers
public class BasicMongoDbHistoryServiceTest {
- @Rule
- public MongoDbRule mongoDbRule = new FixSpringMongoDbRule(MongoDbConfigurationBuilder.mongoDb()
- .databaseName("accession-test").build());
+ @Container
+ static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0");
+
+ @DynamicPropertySource
+ static void setProperties(DynamicPropertyRegistry registry) {
+ registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
+ }
- //Required for nosql unit
@Autowired
- private ApplicationContext applicationContext;
+ private MongoTemplate mongoTemplate;
@Autowired
private AccessioningService accessioningService;
@@ -61,13 +63,18 @@ public class BasicMongoDbHistoryServiceTest {
@Autowired
private HistoryService historyService;
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
- @Test(expected = AccessionDoesNotExistException.class)
+ @BeforeEach
+ public void setUp() {
+ mongoTemplate.getCollectionNames().forEach(name -> mongoTemplate.dropCollection(name));
+ }
+
+ @Test
public void testNoHistory() throws AccessionDoesNotExistException {
- getHistoryTester("DoesNotExist");
+ assertThrows(AccessionDoesNotExistException.class, () -> {
+ getHistoryTester("DoesNotExist");
+ });
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testHistoryNoOperations() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -77,7 +84,6 @@ public void testHistoryNoOperations() throws AccessionDoesNotExistException {
.assertEvent(0, assertEventIsCreated());
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testHistoryUpdate() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -88,7 +94,6 @@ public void testHistoryUpdate() throws AccessionDoesNotExistException {
.assertEvent(1, assertEventIsUpdated("test-2-update-1", 1));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testHistoryPatch() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -100,7 +105,6 @@ public void testHistoryPatch() throws AccessionDoesNotExistException {
.assertEvent(1, assertEventIsPatch("test-3-patch-2", 2));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testHistoryMultiplePatch() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -114,7 +118,6 @@ public void testHistoryMultiplePatch() throws AccessionDoesNotExistException {
.assertEvent(2, assertEventIsPatch("test-3-patch-3", 3));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testHistoryPatchAndUpdate() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -129,7 +132,6 @@ public void testHistoryPatchAndUpdate() throws AccessionDoesNotExistException {
.assertEvent(2, assertEventIsUpdated("test-4-update-patch-2", 2));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testDeprecate() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -142,7 +144,6 @@ public void testDeprecate() throws AccessionDoesNotExistException {
.assertEvent(1, assertEventIsDeprecated());
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testMerge() throws AccessionDoesNotExistException {
getAccessionTester()
@@ -156,7 +157,6 @@ public void testMerge() throws AccessionDoesNotExistException {
.assertEvent(1, assertEventIsMerged("id-test-merge-1"));
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testComplexCase() throws AccessionDoesNotExistException {
getAccessionTester()
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbInactiveAccessionServiceTest.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbInactiveAccessionServiceTest.java
index 8eaaeeaf..b0f39526 100644
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbInactiveAccessionServiceTest.java
+++ b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/mongodb/service/BasicMongoDbInactiveAccessionServiceTest.java
@@ -17,17 +17,16 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.mongodb.service;
-import com.lordofthejars.nosqlunit.annotation.UsingDataSet;
-import com.lordofthejars.nosqlunit.core.LoadStrategyEnum;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder;
-import com.lordofthejars.nosqlunit.mongodb.MongoDbRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import uk.ac.ebi.ampt2d.commons.accession.core.models.EventType;
import uk.ac.ebi.ampt2d.commons.accession.core.models.IEvent;
import uk.ac.ebi.ampt2d.test.configuration.MongoDbTestConfiguration;
@@ -35,31 +34,33 @@
import uk.ac.ebi.ampt2d.test.persistence.document.TestEventDocument;
import uk.ac.ebi.ampt2d.test.persistence.repository.TestRepository;
import uk.ac.ebi.ampt2d.test.persistence.service.TestMongoDbInactiveAccessionService;
-import uk.ac.ebi.ampt2d.test.rule.FixSpringMongoDbRule;
import java.util.Arrays;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static uk.ac.ebi.ampt2d.commons.accession.core.models.EventType.DEPRECATED;
import static uk.ac.ebi.ampt2d.commons.accession.core.models.EventType.MERGED;
import static uk.ac.ebi.ampt2d.commons.accession.core.models.EventType.UPDATED;
import static uk.ac.ebi.ampt2d.test.persistence.document.TestDocument.document;
-@RunWith(SpringRunner.class)
@SpringBootTest(classes = {MongoDbTestConfiguration.class})
+@Testcontainers
public class BasicMongoDbInactiveAccessionServiceTest {
private static final String DEFAULT_REASON = "default-test-reason";
- @Rule
- public MongoDbRule mongoDbRule = new FixSpringMongoDbRule(MongoDbConfigurationBuilder.mongoDb()
- .databaseName("accession-test").build());
+ @Container
+ static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0");
+
+ @DynamicPropertySource
+ static void setProperties(DynamicPropertyRegistry registry) {
+ registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
+ }
- //Required for nosql unit
@Autowired
- private ApplicationContext applicationContext;
+ private MongoTemplate mongoTemplate;
@Autowired
private TestRepository repository;
@@ -67,25 +68,26 @@ public class BasicMongoDbInactiveAccessionServiceTest {
@Autowired
private TestMongoDbInactiveAccessionService service;
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
+ @BeforeEach
+ public void setUp() {
+ mongoTemplate.getCollectionNames().forEach(name -> mongoTemplate.dropCollection(name));
+ }
+
@Test
public void testLastOperationDoesNotExistBehaviour() {
new LastOperationAsserts("notExist").assertDoesNotExist();
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testUpdate() {
update(document(1, "test-update-1")).assertExists().assertIsUpdate();
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testDeprecate() {
deprecate(document(1, "test-deprecate-1")).assertExists().assertIsDeprecate();
}
- @UsingDataSet(loadStrategy = LoadStrategyEnum.DELETE_ALL)
@Test
public void testMerge() {
merge(document(1, "test-deprecate-1"), "a2").assertExists().assertIsMerge("a1", "a2", 1);
diff --git a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/test/rule/FixSpringMongoDbRule.java b/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/test/rule/FixSpringMongoDbRule.java
deleted file mode 100644
index 36e472ea..00000000
--- a/accession-commons-mongodb/src/test/java/uk/ac/ebi/ampt2d/test/rule/FixSpringMongoDbRule.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * Copyright 2018 EMBL - European Bioinformatics Institute
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package uk.ac.ebi.ampt2d.test.rule;
-
-import com.lordofthejars.nosqlunit.mongodb.MongoDbConfiguration;
-import com.lordofthejars.nosqlunit.mongodb.SpringMongoDbRule;
-
-/**
- * Temporary fix until nosql unit rc-6 or final is released
- */
-public class FixSpringMongoDbRule extends SpringMongoDbRule {
-
- public FixSpringMongoDbRule(MongoDbConfiguration mongoDbConfiguration) {
- super(mongoDbConfiguration);
- }
-
- public FixSpringMongoDbRule(MongoDbConfiguration mongoDbConfiguration, Object object) {
- super(mongoDbConfiguration, object);
- }
-
- @Override
- public void close() {
- // DO NOT CLOSE the connection (Spring will do it when destroying the context)
- }
-
-}
diff --git a/accession-commons-monotonic-generator-jpa/pom.xml b/accession-commons-monotonic-generator-jpa/pom.xml
index f51edfdc..efc1899d 100644
--- a/accession-commons-monotonic-generator-jpa/pom.xml
+++ b/accession-commons-monotonic-generator-jpa/pom.xml
@@ -51,8 +51,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
diff --git a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/entities/ContiguousIdBlock.java b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/entities/ContiguousIdBlock.java
index 5df32c2e..1502f736 100644
--- a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/entities/ContiguousIdBlock.java
+++ b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/entities/ContiguousIdBlock.java
@@ -17,15 +17,15 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.PreUpdate;
-import javax.persistence.Table;
-import javax.persistence.UniqueConstraint;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.PreUpdate;
+import jakarta.persistence.Table;
+import jakarta.persistence.UniqueConstraint;
import java.time.LocalDateTime;
/**
diff --git a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/repositories/ContiguousIdBlockRepository.java b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/repositories/ContiguousIdBlockRepository.java
index 971ca7f4..d923655e 100644
--- a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/repositories/ContiguousIdBlockRepository.java
+++ b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/repositories/ContiguousIdBlockRepository.java
@@ -17,6 +17,7 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.repositories;
+import jakarta.persistence.LockModeType;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Query;
@@ -25,7 +26,6 @@
import org.springframework.stereotype.Repository;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock;
-import javax.persistence.LockModeType;
import java.time.LocalDateTime;
import java.util.List;
diff --git a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java
index a43c6bf3..b4022834 100644
--- a/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java
+++ b/accession-commons-monotonic-generator-jpa/src/main/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockService.java
@@ -27,8 +27,8 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.repositories.ContiguousIdBlockRepository;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/block/initialization/BlockParametersTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/block/initialization/BlockParametersTest.java
index e70f5862..65d20e46 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/block/initialization/BlockParametersTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/block/initialization/BlockParametersTest.java
@@ -17,39 +17,51 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.block.initialization;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
public class BlockParametersTest {
private BlockParameters blockParameters;
- @Test(expected = BlockInitializationException.class)
+ @Test
public void emptyBlockParameters() {
Map blockInitializations = null;
- blockParameters = new BlockParameters("test", blockInitializations);
+ assertThrows(BlockInitializationException.class, () -> {
+ blockParameters = new BlockParameters("test", blockInitializations);
+ });
}
- @Test(expected = BlockInitializationException.class)
+ @Test
public void invalidBlockSize() {
- blockParameters = new BlockParameters("test", getBlockInitialization("0", "0", "0"));
+ assertThrows(BlockInitializationException.class, () -> {
+ blockParameters = new BlockParameters("test", getBlockInitialization("0", "0", "0"));
+ });
}
- @Test(expected = BlockInitializationException.class)
+ @Test
public void invalidBlockStartValue() {
- blockParameters = new BlockParameters("test", getBlockInitialization("1000", "-1", "0"));
+ assertThrows(BlockInitializationException.class, () -> {
+ blockParameters = new BlockParameters("test", getBlockInitialization("1000", "-1", "0"));
+ });
}
- @Test(expected = BlockInitializationException.class)
+ @Test
public void invalidInterleaveInterval() {
- blockParameters = new BlockParameters("test", getBlockInitialization("1000", "0", "1a"));
+ assertThrows(BlockInitializationException.class, () -> {
+ blockParameters = new BlockParameters("test", getBlockInitialization("1000", "0", "1a"));
+ });
}
- @Test(expected = BlockInitializationException.class)
+ @Test
public void missingBlockParameters() {
- blockParameters = new BlockParameters("test", getBlockInitialization("1000", "null", "0"));
+ assertThrows(BlockInitializationException.class, () -> {
+ blockParameters = new BlockParameters("test", getBlockInitialization("1000", "null", "0"));
+ });
}
@Test
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTest.java
index 8fc0a3d1..8dde62ad 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDeprecatedException;
@@ -39,9 +37,8 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
public class BasicMonotonicAccessioningTest {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTestWithPreFiltering.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTestWithPreFiltering.java
index 1764f918..521d0cd3 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTestWithPreFiltering.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningTestWithPreFiltering.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDeprecatedException;
@@ -39,9 +37,8 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
public class BasicMonotonicAccessioningTestWithPreFiltering {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTest.java
index c0a0c247..c314feff 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTest.java
@@ -17,13 +17,11 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.block.initialization.BlockInitializationException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
@@ -45,13 +43,13 @@
import java.util.stream.IntStream;
import java.util.stream.LongStream;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllUncompletedBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getUnreservedContiguousIdBlock;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@@ -68,11 +66,13 @@ public class BasicMonotonicAccessioningWithAlternateRangesTest {
@Autowired
private ContiguousIdBlockRepository contiguousIdBlockRepository;
- @Test(expected = BlockInitializationException.class)
- public void testUnknownCategory() throws AccessionCouldNotBeGeneratedException {
- List> evaAccessions =
- getAccessioningService("unknown-category", INSTANCE_ID)
- .getOrCreate(getObjectsForAccessionsInRange(1, 10), INSTANCE_ID);
+ @Test
+ public void testUnknownCategory() {
+ assertThrows(BlockInitializationException.class, () -> {
+ List> evaAccessions =
+ getAccessioningService("unknown-category", INSTANCE_ID)
+ .getOrCreate(getObjectsForAccessionsInRange(1, 10), INSTANCE_ID);
+ });
}
@Test
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTestWithPreFiltering.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTestWithPreFiltering.java
index 63286cf2..98fa36e0 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTestWithPreFiltering.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithAlternateRangesTestWithPreFiltering.java
@@ -17,13 +17,11 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.block.initialization.BlockInitializationException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
@@ -45,13 +43,13 @@
import java.util.stream.IntStream;
import java.util.stream.LongStream;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllUncompletedBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getUnreservedContiguousIdBlock;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@@ -68,11 +66,12 @@ public class BasicMonotonicAccessioningWithAlternateRangesTestWithPreFiltering {
@Autowired
private ContiguousIdBlockRepository contiguousIdBlockRepository;
- @Test(expected = BlockInitializationException.class)
- public void testUnknownCategory() throws AccessionCouldNotBeGeneratedException {
- List> evaAccessions =
- getAccessioningService("unknown-category", INSTANCE_ID)
- .getOrCreate(getObjectsForAccessionsInRange(1, 10), INSTANCE_ID);
+ @Test
+ public void testUnknownCategory() {
+ assertThrows(BlockInitializationException.class, () -> {
+ getAccessioningService("unknown-category", INSTANCE_ID)
+ .getOrCreate(getObjectsForAccessionsInRange(1, 10), INSTANCE_ID);
+ });
}
@Test
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTest.java
index b3708f49..b75fc9a1 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTest.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
@@ -37,10 +35,9 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
public class BasicMonotonicAccessioningWithInitValuesTest {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTestWithPreFiltering.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTestWithPreFiltering.java
index 1ff37a69..32fb62b5 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTestWithPreFiltering.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/core/BasicMonotonicAccessioningWithInitValuesTestWithPreFiltering.java
@@ -17,12 +17,10 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.core;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.transaction.TestTransaction;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
@@ -37,10 +35,9 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
public class BasicMonotonicAccessioningWithInitValuesTestWithPreFiltering {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/BlockManagerTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/BlockManagerTest.java
index 29b4952a..f701f26b 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/BlockManagerTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/BlockManagerTest.java
@@ -17,15 +17,16 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.generators.monotonic;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionIsNotPendingException;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class BlockManagerTest {
@@ -46,22 +47,28 @@ public void availableAccessionWhenBlockHashBeenAdded() {
assertFalse(manager.hasAvailableAccessions(101));
}
- @Test(expected = AccessionIsNotPendingException.class)
+ @Test
public void commitAccessionsThatHaveNotBeenGenerated() {
BlockManager manager = new BlockManager();
- manager.commit(new long[]{1, 3, 5});
+ assertThrows(AccessionIsNotPendingException.class, () -> {
+ manager.commit(new long[]{1, 3, 5});
+ });
}
- @Test(expected = AccessionIsNotPendingException.class)
+ @Test
public void releaseAccessionsThatHaveNotBeenGenerated() {
BlockManager manager = new BlockManager();
- manager.release(new long[]{1, 3, 5});
+ assertThrows(AccessionIsNotPendingException.class, () -> {
+ manager.release(new long[]{1, 3, 5});
+ });
}
- @Test(expected = AccessionCouldNotBeGeneratedException.class)
- public void pollNextWhenNoValues() throws AccessionCouldNotBeGeneratedException {
+ @Test
+ public void pollNextWhenNoValues() {
BlockManager manager = new BlockManager();
- manager.pollNext(4);
+ assertThrows(AccessionCouldNotBeGeneratedException.class, () -> {
+ manager.pollNext(4);
+ });
}
@Test
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionGeneratorTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionGeneratorTest.java
index 9fa204db..93ce4cc8 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionGeneratorTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionGeneratorTest.java
@@ -18,15 +18,13 @@
package uk.ac.ebi.ampt2d.commons.accession.generators.monotonic;
import org.hibernate.exception.ConstraintViolationException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.mockito.Answers;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionCouldNotBeGeneratedException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionGeneratorShutDownException;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionIsNotPendingException;
@@ -48,16 +46,15 @@
import java.util.Set;
import java.util.stream.Collectors;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThrows;
-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.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getUnreservedContiguousIdBlock;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {MonotonicAccessionGeneratorTestConfiguration.class, TestMonotonicDatabaseServiceTestConfiguration.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@@ -338,28 +335,34 @@ public void assertRecoverPendingCommit() throws Exception {
assertEquals(BLOCK_SIZE - 1, monotonicRange.getEnd());
}
- @Test(expected = AccessionIsNotPendingException.class)
+ @Test
public void assertReleaseAndCommitSameElement() throws Exception {
MonotonicAccessionGenerator generator = getMonotonicAccessionGenerator();
generator.generateAccessions(BLOCK_SIZE, INSTANCE_ID);
generator.release(2);
- generator.commit(2);
+ assertThrows(AccessionIsNotPendingException.class, () -> {
+ generator.commit(2);
+ });
}
- @Test(expected = AccessionIsNotPendingException.class)
+ @Test
public void assertCommitAndReleaseSameElement() throws Exception {
MonotonicAccessionGenerator generator = getMonotonicAccessionGenerator();
generator.generateAccessions(BLOCK_SIZE, INSTANCE_ID);
generator.commit(2);
- generator.release(2);
+ assertThrows(AccessionIsNotPendingException.class, () -> {
+ generator.release(2);
+ });
}
- @Test(expected = AccessionIsNotPendingException.class)
+ @Test
public void releaseSomeIdsTwice() throws Exception {
MonotonicAccessionGenerator generator = getMonotonicAccessionGenerator();
generator.generateAccessions(TENTH_BLOCK_SIZE, INSTANCE_ID);
generator.release(0, 1);
- generator.release(0, 1);
+ assertThrows(AccessionIsNotPendingException.class, () -> {
+ generator.release(0, 1);
+ });
}
private long[] getLongArray(int start, int end) {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionRecoveryAgentTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionRecoveryAgentTest.java
index 7b3fff98..51d40886 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionRecoveryAgentTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicAccessionRecoveryAgentTest.java
@@ -1,15 +1,15 @@
package uk.ac.ebi.ampt2d.commons.accession.generators.monotonic;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.core.models.AccessionWrapper;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.repositories.ContiguousIdBlockRepository;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.service.ContiguousIdBlockService;
+
+import jakarta.persistence.EntityManager;
import uk.ac.ebi.ampt2d.commons.accession.service.BasicSpringDataRepositoryMonotonicDatabaseService;
import uk.ac.ebi.ampt2d.test.configuration.MonotonicAccessionGeneratorTestConfiguration;
import uk.ac.ebi.ampt2d.test.configuration.TestMonotonicDatabaseServiceTestConfiguration;
@@ -23,10 +23,9 @@
import java.util.stream.LongStream;
import java.util.stream.StreamSupport;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {MonotonicAccessionGeneratorTestConfiguration.class, TestMonotonicDatabaseServiceTestConfiguration.class})
public class MonotonicAccessionRecoveryAgentTest {
@@ -40,6 +39,8 @@ public class MonotonicAccessionRecoveryAgentTest {
private ContiguousIdBlockRepository repository;
@Autowired
private ContiguousIdBlockService service;
+ @Autowired
+ private EntityManager entityManager;
@Test
public void testRunRecovery() throws InterruptedException {
@@ -72,6 +73,9 @@ public void testRunRecovery() throws InterruptedException {
MonotonicAccessionRecoveryAgent recoveryAgent = new MonotonicAccessionRecoveryAgent(service, monotonicDBService);
recoveryAgent.runRecovery(TEST_CATEGORY, TEST_RECOVERY_AGENT_APP_INSTANCE_ID, recoverCutOffTime);
+ // Clear the persistence context to ensure we fetch fresh data from the database
+ entityManager.flush();
+ entityManager.clear();
List blockList = StreamSupport.stream(repository.findAll().spliterator(), false)
.sorted(Comparator.comparing(ContiguousIdBlock::getFirstValue))
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangePriorityQueueTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangePriorityQueueTest.java
index 08effbb2..b20c85da 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangePriorityQueueTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangePriorityQueueTest.java
@@ -17,9 +17,9 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.generators.monotonic;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class MonotonicRangePriorityQueueTest {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangeTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangeTest.java
index 6cb61d62..18fd33fb 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangeTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/generators/monotonic/MonotonicRangeTest.java
@@ -17,14 +17,14 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.generators.monotonic;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-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.assertTrue;
public class MonotonicRangeTest {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockServiceTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockServiceTest.java
index 492ff72f..ee08e76b 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockServiceTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/persistence/jpa/monotonic/service/ContiguousIdBlockServiceTest.java
@@ -17,34 +17,32 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.service;
-import org.hibernate.exception.ConstraintViolationException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.entities.ContiguousIdBlock;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.repositories.ContiguousIdBlockRepository;
import uk.ac.ebi.ampt2d.test.configuration.MonotonicAccessionGeneratorTestConfiguration;
-import javax.persistence.PersistenceException;
+import jakarta.persistence.PersistenceException;
+import java.sql.SQLException;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getAllBlocksForCategoryId;
import static uk.ac.ebi.ampt2d.commons.accession.util.ContiguousIdBlockUtil.getUnreservedContiguousIdBlock;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {MonotonicAccessionGeneratorTestConfiguration.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@@ -271,7 +269,8 @@ public void testBlocksWithDuplicateCategoryAndFirstValue() {
repository.save(block2);
Throwable exception = assertThrows(PersistenceException.class, () -> testEntityManager.flush());
- assertTrue(exception.getCause() instanceof ConstraintViolationException);
+ // In Hibernate 6.x, the cause is the database-specific SQLException rather than Hibernate's ConstraintViolationException
+ assertInstanceOf(SQLException.class, exception.getCause());
}
@Test
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/DecoratedAccessionMergedExceptionTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/DecoratedAccessionMergedExceptionTest.java
index d1cf7d55..51523b07 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/DecoratedAccessionMergedExceptionTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/rest/DecoratedAccessionMergedExceptionTest.java
@@ -17,9 +17,7 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.rest;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.json.AutoConfigureJsonTesters;
@@ -28,7 +26,6 @@
import org.springframework.boot.test.json.JacksonTester;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.ResultActions;
@@ -47,10 +44,10 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@AutoConfigureJsonTesters
@@ -75,9 +72,9 @@ public void testAllOperationsAfterMerge() throws Exception {
String accession1 = extractAccession(doAccession("merge-test-1"));
String accession2 = extractAccession(doAccession("merge-test-2"));
String accession3 = extractAccession(doAccession("merge-test-3"));
- Assert.assertEquals("EGA00000000100", accession1);
- Assert.assertEquals("EGA00000000101", accession2);
- Assert.assertEquals("EGA00000000102", accession3);
+ assertEquals("EGA00000000100", accession1);
+ assertEquals("EGA00000000101", accession2);
+ assertEquals("EGA00000000102", accession3);
doMerge(accession2, accession3).andExpect(status().isOk());
doMerge(accession1, accession2).andExpect(status().isNotFound()).andExpect(jsonPath("$.message")
.value(accession2 + " has been already merged into " + accession3));
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/service/BasicSpringDataRepositoryMonotonicDatabaseServiceTest.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/service/BasicSpringDataRepositoryMonotonicDatabaseServiceTest.java
index e33a053b..061ee8e8 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/service/BasicSpringDataRepositoryMonotonicDatabaseServiceTest.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/commons/accession/service/BasicSpringDataRepositoryMonotonicDatabaseServiceTest.java
@@ -15,14 +15,12 @@
*/
package uk.ac.ebi.ampt2d.commons.accession.service;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
import uk.ac.ebi.ampt2d.commons.accession.generators.monotonic.MonotonicRange;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.monotonic.service.MonotonicDatabaseService;
import uk.ac.ebi.ampt2d.test.configuration.TestMonotonicDatabaseServiceTestConfiguration;
@@ -33,9 +31,8 @@
import java.util.Arrays;
import java.util.Collections;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-@RunWith(SpringRunner.class)
@DataJpaTest
@ContextConfiguration(classes = {TestMonotonicDatabaseServiceTestConfiguration.class})
public class BasicSpringDataRepositoryMonotonicDatabaseServiceTest {
@@ -70,12 +67,12 @@ public class BasicSpringDataRepositoryMonotonicDatabaseServiceTest {
@Autowired
private MonotonicDatabaseService service;
- @Before
+ @BeforeEach
public void setUp() throws Exception {
repository.deleteAll();
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
repository.deleteAll();
}
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestLongOperationEntity.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestLongOperationEntity.java
index d09eb365..68bed4a6 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestLongOperationEntity.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestLongOperationEntity.java
@@ -19,7 +19,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.OperationEntity;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
@Entity
public class TestLongOperationEntity extends OperationEntity {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicEntity.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicEntity.java
index 613d0a6f..f42dd680 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicEntity.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicEntity.java
@@ -21,7 +21,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.AccessionedEntity;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
@Entity
public class TestMonotonicEntity extends AccessionedEntity implements TestModel {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicInactiveAccessionEntity.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicInactiveAccessionEntity.java
index e18a82db..44463776 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicInactiveAccessionEntity.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicInactiveAccessionEntity.java
@@ -20,7 +20,7 @@
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.entities.InactiveAccessionEntity;
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
@Entity
public class TestMonotonicInactiveAccessionEntity extends InactiveAccessionEntity implements TestModel {
diff --git a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicRepositoryImpl.java b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicRepositoryImpl.java
index d86b1d89..1183ce7f 100644
--- a/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicRepositoryImpl.java
+++ b/accession-commons-monotonic-generator-jpa/src/test/java/uk/ac/ebi/ampt2d/test/persistence/TestMonotonicRepositoryImpl.java
@@ -21,7 +21,7 @@
import org.springframework.transaction.PlatformTransactionManager;
import uk.ac.ebi.ampt2d.commons.accession.persistence.jpa.repositories.BasicJpaAccessionedObjectCustomRepositoryImpl;
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
public class TestMonotonicRepositoryImpl extends
BasicJpaAccessionedObjectCustomRepositoryImpl {
diff --git a/accession-commons-test/pom.xml b/accession-commons-test/pom.xml
index b592bca7..d5337d91 100644
--- a/accession-commons-test/pom.xml
+++ b/accession-commons-test/pom.xml
@@ -22,6 +22,7 @@
org.springframework.boot
spring-boot-starter-test
+ compile
uk.ac.ebi.ampt2d
@@ -36,8 +37,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/rest/BasicRestModel.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/rest/BasicRestModel.java
index 53eca64a..3e19dfd9 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/rest/BasicRestModel.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/rest/BasicRestModel.java
@@ -19,7 +19,7 @@
import uk.ac.ebi.ampt2d.test.models.TestModel;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
public class BasicRestModel implements TestModel {
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionVersionWrapperTester.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionVersionWrapperTester.java
index dc22c85e..239af7d2 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionVersionWrapperTester.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionVersionWrapperTester.java
@@ -26,8 +26,8 @@
import java.util.Comparator;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
public class AccessionVersionWrapperTester
extends MethodResponseTester> {
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionWrapperCollectionTester.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionWrapperCollectionTester.java
index e6e6ed10..7b5b4095 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionWrapperCollectionTester.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/AccessionWrapperCollectionTester.java
@@ -25,8 +25,8 @@
import java.util.Objects;
import java.util.stream.Collectors;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
public class AccessionWrapperCollectionTester
extends MethodResponseTester>> {
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/HistoryTester.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/HistoryTester.java
index 8f18707f..b09b95fe 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/HistoryTester.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/HistoryTester.java
@@ -17,7 +17,7 @@
*/
package uk.ac.ebi.ampt2d.test.testers;
-import org.junit.Assert;
+import org.junit.jupiter.api.Assertions;
import uk.ac.ebi.ampt2d.commons.accession.core.HistoryService;
import uk.ac.ebi.ampt2d.commons.accession.core.exceptions.AccessionDoesNotExistException;
import uk.ac.ebi.ampt2d.commons.accession.core.models.EventType;
@@ -27,8 +27,8 @@
import java.util.List;
import java.util.function.Consumer;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
public class HistoryTester {
@@ -76,7 +76,7 @@ public static Consumer> assertNullMergedInto() {
}
public static Consumer> assertMergedInto(String accession) {
- return event -> Assert.assertEquals(accession, event.getMergedInto());
+ return event -> Assertions.assertEquals(accession, event.getMergedInto());
}
public static Consumer> assertNullVersion() {
@@ -84,7 +84,7 @@ public static Consumer> assertNullVersion() {
}
public static Consumer> assertVersion(int version) {
- return event -> Assert.assertEquals(new Integer(version), event.getVersion());
+ return event -> Assertions.assertEquals(Integer.valueOf(version), event.getVersion());
}
public static Consumer> assertNullData() {
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/IMethodTester.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/IMethodTester.java
index 0e394903..1db9de34 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/IMethodTester.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/IMethodTester.java
@@ -20,8 +20,8 @@
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
public interface IMethodTester {
@@ -31,7 +31,7 @@ default void assertNoException() {
default void assertThrow(Class extends Throwable> exceptionClass) {
Exception thrownException = getException().get();
- assertNotNull("No exception was thrown", thrownException);
+ assertNotNull(thrownException, "No exception was thrown");
assertThatThrownBy(() -> {
throw thrownException;
}).isInstanceOf(exceptionClass);
diff --git a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/MethodResponseTester.java b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/MethodResponseTester.java
index 7e4cff3e..1a164255 100644
--- a/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/MethodResponseTester.java
+++ b/accession-commons-test/src/main/java/uk/ac/ebi/ampt2d/test/testers/MethodResponseTester.java
@@ -22,8 +22,8 @@
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
public class MethodResponseTester implements IMethodTester{
diff --git a/pom.xml b/pom.xml
index 958121a0..b3d1d7c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,13 +20,13 @@
UTF-8
- 4.13
+ 21
org.springframework.boot
spring-boot-starter-parent
- 2.1.0.RELEASE
+ 3.4.1
@@ -69,13 +69,15 @@
org.apache.maven.plugins
maven-compiler-plugin
- 1.8
- 1.8
+ 21
+ 21
+ 21
org.apache.maven.plugins
maven-surefire-plugin
+ 3.2.5
false