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> 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 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