diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 88b715b0..468fc813 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -9,25 +9,13 @@ on: jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - mongodb-version: [4.0.18] - 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 http://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/pom.xml b/pom.xml index 553d4a40..d3fe116d 100644 --- a/pom.xml +++ b/pom.xml @@ -17,8 +17,8 @@ - 1.8 - 2.1.0.RELEASE + 21 + 3.4.1 @@ -38,20 +38,27 @@ - com.lordofthejars - nosqlunit-mongodb + jakarta.validation + jakarta.validation-api + 3.0.2 + + + org.testcontainers + testcontainers + 1.19.3 test - 0.14.0 - javax.validation - validation-api - 1.1.0.Final + org.testcontainers + mongodb + 1.19.3 + test - com.fasterxml.jackson.core - jackson-annotations - 2.9.9 + org.testcontainers + junit-jupiter + 1.19.3 + test io.swagger @@ -121,10 +128,9 @@ org.apache.maven.plugins maven-compiler-plugin - 3.2 + 3.12.1 - ${java.version} - ${java.version} + ${java.version} true true UTF-8 diff --git a/variation-commons-batch/pom.xml b/variation-commons-batch/pom.xml index fec476b0..a4c84808 100644 --- a/variation-commons-batch/pom.xml +++ b/variation-commons-batch/pom.xml @@ -31,8 +31,13 @@ spring-boot-starter-data-jpa - com.lordofthejars - nosqlunit-mongodb + org.testcontainers + mongodb + test + + + org.testcontainers + junit-jupiter test diff --git a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibilityConfiguration.java b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibilityConfiguration.java index d966d36b..0c972635 100644 --- a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibilityConfiguration.java +++ b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibilityConfiguration.java @@ -1,65 +1,40 @@ package uk.ac.ebi.eva.commons.batch.configuration; -import org.springframework.batch.core.configuration.annotation.BatchConfigurer; -import org.springframework.batch.core.configuration.annotation.DefaultBatchConfigurer; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.explore.support.JobExplorerFactoryBean; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; +import org.springframework.batch.core.configuration.support.DefaultBatchConfiguration; +import org.springframework.batch.core.repository.ExecutionContextSerializer; +import org.springframework.batch.core.repository.dao.Jackson2ExecutionContextStringSerializer; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.vendor.HibernateJpaDialect; import org.springframework.transaction.PlatformTransactionManager; - -import javax.persistence.EntityManagerFactory; +import jakarta.persistence.EntityManagerFactory; import javax.sql.DataSource; -public class SpringBoot1CompatibilityConfiguration { +/** + * Spring Batch configuration for JPA/Hibernate compatibility. + * + * Updated for Spring Batch 5.x which removes BatchConfigurer and DefaultBatchConfigurer. + * Extend this class and override getDataSource() to provide your DataSource. + */ +public abstract class SpringBoot1CompatibilityConfiguration extends DefaultBatchConfiguration { + + private final EntityManagerFactory entityManagerFactory; + + protected SpringBoot1CompatibilityConfiguration(EntityManagerFactory entityManagerFactory) { + this.entityManagerFactory = entityManagerFactory; + } - // Due to the bug here: https://github.com/spring-projects/spring-batch/issues/1289#issue-538711146 - // BatchConfigurer seems to override the transaction manager that is already present in the ExecutionContext - // This leads to issues like https://github.com/spring-projects/spring-batch/issues/961#issue-538704176 - // Therefore, we have to "re-assert" to Spring Boot that we intend to use - // a JPA Transaction manager by putting back in the ExecutionContext - private static JpaTransactionManager getTransactionManager(DataSource dataSource, EntityManagerFactory entityManagerFactory) { + @Override + public PlatformTransactionManager getTransactionManager() { final JpaTransactionManager jpaTransactionManager = new JpaTransactionManager(); - jpaTransactionManager.setDataSource(dataSource); + jpaTransactionManager.setDataSource(getDataSource()); jpaTransactionManager.setJpaDialect(new HibernateJpaDialect()); jpaTransactionManager.setEntityManagerFactory(entityManagerFactory); return jpaTransactionManager; } - public static BatchConfigurer getSpringBoot1CompatibleBatchConfigurer(DataSource dataSource, - EntityManagerFactory entityManagerFactory) - throws Exception { - final JpaTransactionManager transactionManager = getTransactionManager(dataSource, entityManagerFactory); - final SpringBoot1CompatibleSerializer serializer = new SpringBoot1CompatibleSerializer(); - return new DefaultBatchConfigurer(dataSource) { - - @Override - protected JobRepository createJobRepository() throws Exception { - - JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); - factory.setDataSource(dataSource); - factory.setTransactionManager(transactionManager); - factory.setSerializer(serializer); - factory.afterPropertiesSet(); - return factory.getObject(); - } - - @Override - protected JobExplorer createJobExplorer() throws Exception { - JobExplorerFactoryBean jobExplorerFactoryBean = new JobExplorerFactoryBean(); - jobExplorerFactoryBean.setSerializer(serializer); - jobExplorerFactoryBean.setDataSource(dataSource); - jobExplorerFactoryBean.afterPropertiesSet(); - return jobExplorerFactoryBean.getObject(); - } - - @Override - public PlatformTransactionManager getTransactionManager() { - return transactionManager; - } - }; + @Override + protected ExecutionContextSerializer getExecutionContextSerializer() { + return new Jackson2ExecutionContextStringSerializer(); } } diff --git a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibleSerializer.java b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibleSerializer.java index 2b363411..24ca6744 100644 --- a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibleSerializer.java +++ b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/configuration/SpringBoot1CompatibleSerializer.java @@ -1,49 +1,29 @@ package uk.ac.ebi.eva.commons.batch.configuration; -import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Map; -import com.fasterxml.jackson.core.JsonProcessingException; + import org.springframework.batch.core.repository.ExecutionContextSerializer; import org.springframework.batch.core.repository.dao.Jackson2ExecutionContextStringSerializer; -import org.springframework.batch.core.repository.dao.XStreamExecutionContextStringSerializer; - /** - * ExecutionContext serialization/deserialization from Job repository changed in mechanism - * from XStream to Jackson in Spring Boot 2 (which includes the Spring Batch 4 library) - * - see https://docs.spring.io/spring-batch/docs/4.0.4.RELEASE/reference/html/whatsnew.html#whatsNewSerialization - * - * This class enables reading ExecutionContext entries written by Spring Boot 1.5 (Spring Batch 3) - * as well as Spring Boot 2.1 (Spring Batch 4) and write entries in Spring Boot 2 (Spring Batch 4) format + * ExecutionContext serializer using Jackson. * - * Adapted from https://stackoverflow.com/a/55375553 + * Note: XStreamExecutionContextStringSerializer has been removed in Spring Batch 5.x. + * This class now only supports Jackson-based serialization format. + * Legacy XStream-serialized data will need to be migrated separately if still present. */ public class SpringBoot1CompatibleSerializer implements ExecutionContextSerializer { - private final XStreamExecutionContextStringSerializer xStream = new XStreamExecutionContextStringSerializer(); private final Jackson2ExecutionContextStringSerializer jackson = new Jackson2ExecutionContextStringSerializer(); - public SpringBoot1CompatibleSerializer() throws Exception { - xStream.afterPropertiesSet(); + public SpringBoot1CompatibleSerializer() { } @Override public Map deserialize(InputStream inputStream) throws IOException { - InputStream repeatableInputStream = ensureMarkSupported(inputStream); - repeatableInputStream.mark(Integer.MAX_VALUE); - - try { - return jackson.deserialize(repeatableInputStream); - } catch (JsonProcessingException e) { - repeatableInputStream.reset(); - return xStream.deserialize(repeatableInputStream); - } - } - - private static InputStream ensureMarkSupported(InputStream in) { - return in.markSupported() ? in : new BufferedInputStream(in); + return jackson.deserialize(inputStream); } @Override diff --git a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfLineMapper.java b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfLineMapper.java index f842a8f8..d016ab03 100644 --- a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfLineMapper.java +++ b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfLineMapper.java @@ -26,7 +26,7 @@ import uk.ac.ebi.eva.commons.core.models.factories.VariantVcfFactory; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; -import javax.annotation.Nullable; +import jakarta.annotation.Nullable; import java.io.FileInputStream; import java.io.IOException; import java.util.List; diff --git a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReader.java b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReader.java index 8185fac3..79579e3a 100644 --- a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReader.java +++ b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReader.java @@ -17,7 +17,7 @@ import uk.ac.ebi.eva.commons.core.models.Aggregation; -import javax.annotation.Nullable; +import jakarta.annotation.Nullable; import java.io.File; import java.io.IOException; diff --git a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/job/JobStatusManager.java b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/job/JobStatusManager.java index 8cdcb588..97c632c5 100644 --- a/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/job/JobStatusManager.java +++ b/variation-commons-batch/src/main/java/uk/ac/ebi/eva/commons/batch/job/JobStatusManager.java @@ -28,7 +28,7 @@ import uk.ac.ebi.eva.commons.batch.exception.NoParametersHaveBeenPassedException; import uk.ac.ebi.eva.commons.batch.exception.NoPreviousJobExecutionException; -import java.util.Date; +import java.time.LocalDateTime; import java.util.Objects; /** @@ -60,7 +60,7 @@ public static void markLastJobAsFailed(JobRepository jobRepository, String jobNa throw new NoPreviousJobExecutionException(jobName, jobParameters); } - Date currentTime = new Date(); + LocalDateTime currentTime = LocalDateTime.now(); lastJobExecution.setEndTime(currentTime); lastJobExecution.setStatus(BatchStatus.FAILED); lastJobExecution.setExitStatus( diff --git a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReaderTest.java b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReaderTest.java index eb3fa371..a5f937ad 100644 --- a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReaderTest.java +++ b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/AggregatedVcfReaderTest.java @@ -15,9 +15,8 @@ */ package uk.ac.ebi.eva.commons.batch.io; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.test.MetaDataInstanceFactory; @@ -30,12 +29,14 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Path; import java.util.List; import java.util.zip.GZIPInputStream; -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.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * {@link AggregatedVcfReader} @@ -54,17 +55,21 @@ public class AggregatedVcfReaderTest { private static final String INPUT_FILE_PATH_EVS = "/input-files/vcf/aggregated.evs.vcf.gz"; - @Rule - public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); + @TempDir + Path temporaryFolder; - @Test(expected = IllegalArgumentException.class) + @Test public void shouldThrowOnInvalidAggregation() throws IOException { - new AggregatedVcfReader(FILE_ID, STUDY_ID, Aggregation.NONE, null, FileUtils.getResourceFile(INPUT_FILE_PATH)); + assertThrows(IllegalArgumentException.class, () -> { + new AggregatedVcfReader(FILE_ID, STUDY_ID, Aggregation.NONE, null, FileUtils.getResourceFile(INPUT_FILE_PATH)); + }); } - @Test(expected = IllegalArgumentException.class) + @Test public void shouldThrowOnNullAggregation() throws IOException { - new AggregatedVcfReader(FILE_ID, STUDY_ID, null, null, FileUtils.getResourceFile(INPUT_FILE_PATH)); + assertThrows(IllegalArgumentException.class, () -> { + new AggregatedVcfReader(FILE_ID, STUDY_ID, null, null, FileUtils.getResourceFile(INPUT_FILE_PATH)); + }); } @Test @@ -104,7 +109,7 @@ public void testUncompressedVcf() throws Exception { // uncompress the input VCF into a temporal file File input = FileUtils.getResourceFile(INPUT_FILE_PATH); - File tempFile = temporaryFolderRule.newFile(); + File tempFile = temporaryFolder.resolve("tempFile.vcf").toFile(); CompressionHelper.uncompress(input.getAbsolutePath(), tempFile); AggregatedVcfReader vcfReader = new AggregatedVcfReader(FILE_ID, STUDY_ID, Aggregation.BASIC, diff --git a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/CoordinatesVcfReaderTest.java b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/CoordinatesVcfReaderTest.java index 45dff3ec..c41f99c0 100644 --- a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/CoordinatesVcfReaderTest.java +++ b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/CoordinatesVcfReaderTest.java @@ -15,12 +15,9 @@ */ package uk.ac.ebi.eva.commons.batch.io; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.file.FlatFileParseException; import org.springframework.batch.test.MetaDataInstanceFactory; import uk.ac.ebi.eva.commons.core.models.IVariant; @@ -31,11 +28,12 @@ import java.io.File; import java.io.FileInputStream; +import java.nio.file.Path; import java.util.List; import java.util.zip.GZIPInputStream; -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; /** * {@link VcfReader} @@ -46,15 +44,12 @@ */ public class CoordinatesVcfReaderTest { - @Rule - public ExpectedException exception = ExpectedException.none(); - private static final String INPUT_FILE_PATH = "/input-files/vcf/genotyped.vcf.gz"; private static final String INPUT_FILE_WITH_NON_VARIANTS_PATH = "/input-files/vcf/wrong_same_ref_alt.vcf.gz"; - @Rule - public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); + @TempDir + Path temporaryFolder; @Test public void shouldReadAllLines() throws Exception { @@ -103,7 +98,7 @@ public void testUncompressedVcf() throws Exception { // uncompress the input VCF into a temporary file File input = FileUtils.getResourceFile(INPUT_FILE_PATH); - File tempFile = temporaryFolderRule.newFile(); + File tempFile = temporaryFolder.resolve("tempFile.vcf").toFile(); CompressionHelper.uncompress(input.getAbsolutePath(), tempFile); CoordinatesVcfLineMapper lineMapper = new CoordinatesVcfLineMapper(); diff --git a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemReaderTest.java b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemReaderTest.java index ddb9cb1c..08fc3e95 100644 --- a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemReaderTest.java +++ b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemReaderTest.java @@ -15,10 +15,8 @@ */ package uk.ac.ebi.eva.commons.batch.io; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.file.FlatFileParseException; @@ -31,20 +29,19 @@ import java.io.File; import java.io.FileInputStream; +import java.nio.file.Path; import java.util.zip.GZIPInputStream; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.lessThanOrEqualTo; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; public class UnwindingItemReaderTest { - @Rule - public ExpectedException exception = ExpectedException.none(); - - @Rule - public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); + @TempDir + Path temporaryFolder; private static final String INPUT_FILE_PATH = "/input-files/vcf/genotyped.vcf.gz"; @@ -102,9 +99,10 @@ public void invalidFileShouldFail() throws Exception { UnwindingItemReader unwindedItemReader = new UnwindingItemReader<>(vcfReader); // consume the reader and check that a wrong variant raise an exception - exception.expect(FlatFileParseException.class); - while (unwindedItemReader.read() != null) { - } + assertThrows(FlatFileParseException.class, () -> { + while (unwindedItemReader.read() != null) { + } + }); } @Test @@ -113,7 +111,7 @@ public void testUncompressedVcf() throws Exception { // uncompress the input VCF into a temporary file File input = FileUtils.getResourceFile(INPUT_FILE_PATH); - File tempFile = temporaryFolderRule.newFile(); + File tempFile = temporaryFolder.resolve("tempFile.vcf").toFile(); CompressionHelper.uncompress(input.getAbsolutePath(), tempFile); VcfReader vcfReader = new VcfReader(FILE_ID, STUDY_ID, tempFile); diff --git a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemStreamReaderTest.java b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemStreamReaderTest.java index 592cc0e3..50493119 100644 --- a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemStreamReaderTest.java +++ b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/UnwindingItemStreamReaderTest.java @@ -15,10 +15,8 @@ */ package uk.ac.ebi.eva.commons.batch.io; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.file.FlatFileParseException; import org.springframework.batch.test.MetaDataInstanceFactory; @@ -28,16 +26,15 @@ import uk.ac.ebi.eva.commons.core.utils.FileUtils; import java.io.File; +import java.nio.file.Path; +import static org.junit.jupiter.api.Assertions.assertThrows; import static uk.ac.ebi.eva.commons.batch.io.UnwindingItemReaderTest.consumeReader; public class UnwindingItemStreamReaderTest { - - @Rule - public ExpectedException exception = ExpectedException.none(); - @Rule - public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); + @TempDir + Path temporaryFolder; private static final String INPUT_FILE_PATH = "/input-files/vcf/genotyped.vcf.gz"; @@ -77,9 +74,10 @@ public void invalidFileShouldFail() throws Exception { unwindingItemStreamReader.open(executionContext); // consume the reader and check that a wrong variant raise an exception - exception.expect(FlatFileParseException.class); - while (unwindingItemStreamReader.read() != null) { - } + assertThrows(FlatFileParseException.class, () -> { + while (unwindingItemStreamReader.read() != null) { + } + }); } @Test @@ -88,7 +86,7 @@ public void testUncompressedVcf() throws Exception { // uncompress the input VCF into a temporary file File input = FileUtils.getResourceFile(INPUT_FILE_PATH); - File tempFile = temporaryFolderRule.newFile(); + File tempFile = temporaryFolder.resolve("tempFile.vcf").toFile(); CompressionHelper.uncompress(input.getAbsolutePath(), tempFile); VcfReader vcfReader = new VcfReader(FILE_ID, STUDY_ID, tempFile); diff --git a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/VcfReaderTest.java b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/VcfReaderTest.java index 9004824c..5792e833 100644 --- a/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/VcfReaderTest.java +++ b/variation-commons-batch/src/test/java/uk/ac/ebi/eva/commons/batch/io/VcfReaderTest.java @@ -15,10 +15,8 @@ */ package uk.ac.ebi.eva.commons.batch.io; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.file.FlatFileParseException; import org.springframework.batch.test.MetaDataInstanceFactory; @@ -30,11 +28,13 @@ import java.io.File; import java.io.FileInputStream; +import java.nio.file.Path; import java.util.List; import java.util.zip.GZIPInputStream; -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; /** * {@link VcfReader} @@ -45,9 +45,6 @@ */ public class VcfReaderTest { - @Rule - public ExpectedException exception = ExpectedException.none(); - private static final String INPUT_FILE_PATH = "/input-files/vcf/genotyped.vcf.gz"; private static final String INPUT_WRONG_FILE_PATH = "/input-files/vcf/wrong_same_ref_alt.vcf.gz"; @@ -56,8 +53,8 @@ public class VcfReaderTest { private static final String STUDY_ID = "7"; - @Rule - public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); + @TempDir + Path temporaryFolder; @Test public void shouldReadAllLines() throws Exception { @@ -85,9 +82,10 @@ public void invalidFileShouldFail() throws Exception { vcfReader.open(executionContext); // consume the reader and check that a wrong variant raise an exception - exception.expect(FlatFileParseException.class); - while (vcfReader.read() != null) { - } + assertThrows(FlatFileParseException.class, () -> { + while (vcfReader.read() != null) { + } + }); } @Test @@ -96,7 +94,7 @@ public void testUncompressedVcf() throws Exception { // uncompress the input VCF into a temporary file File input = FileUtils.getResourceFile(INPUT_FILE_PATH); - File tempFile = temporaryFolderRule.newFile(); + File tempFile = temporaryFolder.resolve("tempFile.vcf").toFile(); CompressionHelper.uncompress(input.getAbsolutePath(), tempFile); VcfReader vcfReader = new VcfReader(FILE_ID, STUDY_ID, tempFile); diff --git a/variation-commons-beacon/pom.xml b/variation-commons-beacon/pom.xml index 9c3020fa..af5233a2 100644 --- a/variation-commons-beacon/pom.xml +++ b/variation-commons-beacon/pom.xml @@ -11,8 +11,8 @@ variation-commons-beacon - javax.validation - validation-api + jakarta.validation + jakarta.validation-api com.fasterxml.jackson.core diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/AdamDataUse.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/AdamDataUse.java index 0dffa108..a137261c 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/AdamDataUse.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/AdamDataUse.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * AdamDataUse */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class AdamDataUse { @JsonProperty("header") private Header header = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Beacon.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Beacon.java index bcf1db70..fe390562 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Beacon.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Beacon.java @@ -25,14 +25,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Beacon */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class Beacon { @JsonProperty("id") private String id = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleRequest.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleRequest.java index 55099b7d..b756b0f3 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleRequest.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleRequest.java @@ -25,15 +25,15 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Allele request as interpreted by the beacon. */ @ApiModel(description = "Allele request as interpreted by the beacon.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconAlleleRequest { @JsonProperty("referenceName") private Chromosome referenceName = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleResponse.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleResponse.java index 2e786425..aa138cfa 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleResponse.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconAlleleResponse.java @@ -22,14 +22,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * BeaconAlleleResponse */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconAlleleResponse { @JsonProperty("beaconId") private String beaconId = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDataset.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDataset.java index 9b76f9bb..42f1aa41 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDataset.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDataset.java @@ -22,14 +22,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * BeaconDataset */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconDataset { @JsonProperty("id") private String id = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDatasetAlleleResponse.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDatasetAlleleResponse.java index e9853c96..ad61bf70 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDatasetAlleleResponse.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconDatasetAlleleResponse.java @@ -25,14 +25,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * BeaconDatasetAlleleResponse */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconDatasetAlleleResponse { @JsonProperty("datasetId") private String datasetId = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconError.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconError.java index b80e3e50..5b87e196 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconError.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconError.java @@ -22,15 +22,15 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Beacon-specific error. This should be non-null in exceptional situations only, in which case `exists` has to be null. */ @ApiModel(description = "Beacon-specific error. This should be non-null in exceptional situations only, in which case `exists` has to be null.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconError { @JsonProperty("errorCode") private Integer errorCode = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconOrganization.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconOrganization.java index 2e758ce9..a358202c 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconOrganization.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/BeaconOrganization.java @@ -24,15 +24,15 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Organization owning the beacon. */ @ApiModel(description = "Organization owning the beacon.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class BeaconOrganization { @JsonProperty("id") private String id = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalDescription.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalDescription.java index 699eea26..61636314 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalDescription.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalDescription.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * ClinicalDescription */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ClinicalDescription { @JsonProperty("type") private ClinicalProfile type = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalProfile.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalProfile.java index 0cbc75e4..1e4610e5 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalProfile.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ClinicalProfile.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUse.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUse.java index 5ddb7129..02313e20 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUse.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUse.java @@ -24,15 +24,15 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Data use of a resource based on consent codes. */ @ApiModel(description = "Data use of a resource based on consent codes.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ConsentCodeDataUse { @JsonProperty("primaryCategory") private ConsentCodeDataUseCondition primaryCategory = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUseCondition.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUseCondition.java index cdc0ad43..7d420474 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUseCondition.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ConsentCodeDataUseCondition.java @@ -22,15 +22,15 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Data use condition. */ @ApiModel(description = "Data use condition.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ConsentCodeDataUseCondition { @JsonProperty("code") private String code = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Contact.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Contact.java index 8e43153e..8ae2b7ca 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Contact.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Contact.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Contact */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class Contact { @JsonProperty("name") private String name = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataLevel.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataLevel.java index 3bf0cb51..3a41778e 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataLevel.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataLevel.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataUseConditions.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataUseConditions.java index 06ca9936..b08fd02c 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataUseConditions.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/DataUseConditions.java @@ -22,15 +22,15 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Data use conditions ruling this dataset. */ @ApiModel(description = "Data use conditions ruling this dataset.") @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class DataUseConditions { @JsonProperty("consentCodeDataUse") private ConsentCodeDataUse consentCodeDataUse = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Header.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Header.java index ed53075f..696b2c4c 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Header.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Header.java @@ -24,14 +24,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Header */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class Header { @JsonProperty("matrixName") private String matrixName = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/KeyValuePair.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/KeyValuePair.java index eccfba15..efd1594b 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/KeyValuePair.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/KeyValuePair.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * KeyValuePair */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class KeyValuePair { @JsonProperty("key") private String key = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MetaConditions.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MetaConditions.java index af36a9ea..81a9c477 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MetaConditions.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MetaConditions.java @@ -24,14 +24,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * MetaConditions */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class MetaConditions { @JsonProperty("sharingMode") private SharingMode sharingMode = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MultipleObligationsRule.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MultipleObligationsRule.java index 9b2a4b04..1533bf70 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MultipleObligationsRule.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/MultipleObligationsRule.java @@ -20,8 +20,8 @@ import io.swagger.annotations.ApiModel; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Profile.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Profile.java index 1200ffe5..15f9aa01 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Profile.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Profile.java @@ -24,14 +24,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Profile */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class Profile { @JsonProperty("country") private RestrictionsUL country = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileDescription.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileDescription.java index b3ad9577..cec5d158 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileDescription.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileDescription.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * ProfileDescription */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ProfileDescription { @JsonProperty("description") private String description = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileUpdates.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileUpdates.java index 6635f2b9..7c31355f 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileUpdates.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ProfileUpdates.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * ProfileUpdates */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ProfileUpdates { @JsonProperty("date") private String date = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchDescription.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchDescription.java index 8f91e619..076be9a6 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchDescription.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchDescription.java @@ -22,14 +22,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * ResearchDescription */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class ResearchDescription { @JsonProperty("type") private ResearchProfile type = null; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchProfile.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchProfile.java index 5844efbc..26e50f6a 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchProfile.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/ResearchProfile.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsUL.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsUL.java index b9c3e62f..b3fa7ebc 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsUL.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsUL.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsULF.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsULF.java index 837053fb..bb30402d 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsULF.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/RestrictionsULF.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/SharingMode.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/SharingMode.java index 6c4ff870..fd4eb1ea 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/SharingMode.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/SharingMode.java @@ -19,8 +19,8 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Terms.java b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Terms.java index 16bfe022..4c90e34a 100644 --- a/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Terms.java +++ b/variation-commons-beacon/src/main/java/uk/ac/ebi/eva/commons/beacon/models/Terms.java @@ -24,14 +24,14 @@ import java.util.ArrayList; import java.util.List; import org.springframework.validation.annotation.Validated; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; /** * Terms */ @Validated -@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2019-06-18T18:08:34.969Z[GMT]") public class Terms { @JsonProperty("noAuthorizationTerms") private Boolean noAuthorizationTerms = null; diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/AbstractVariantTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/AbstractVariantTest.java index 38d6893a..b2691efe 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/AbstractVariantTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/AbstractVariantTest.java @@ -16,65 +16,64 @@ package uk.ac.ebi.eva.commons.core.models; -import org.hamcrest.CoreMatchers; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; public class AbstractVariantTest { - @Rule - public ExpectedException exception = ExpectedException.none(); - @Test public void testNegativeStartCoordinateInConstructor() throws IllegalArgumentException { - exception.expect(IllegalArgumentException.class); - exception.expectMessage(CoreMatchers.equalTo(AbstractVariant.VARIANT_START_COORDINATE_CANNOT_BE_NEGATIVE)); - new Variant("1", -1, 1, "C", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + new Variant("1", -1, 1, "C", "T"); + }); + assertEquals(AbstractVariant.VARIANT_START_COORDINATE_CANNOT_BE_NEGATIVE, exception.getMessage()); } @Test public void testNegativeStartCoordinateInRenormalization() throws IllegalArgumentException { Variant variant = new Variant("1", 1, 1, "C", "T"); - exception.expect(IllegalArgumentException.class); - exception.expectMessage(CoreMatchers.equalTo(AbstractVariant.VARIANT_START_COORDINATE_CANNOT_BE_NEGATIVE)); - variant.renormalize(-1, 1, "A", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + variant.renormalize(-1, 1, "A", "T"); + }); + assertEquals(AbstractVariant.VARIANT_START_COORDINATE_CANNOT_BE_NEGATIVE, exception.getMessage()); } @Test public void testNegativeEndCoordinateInConstructor() throws IllegalArgumentException { - exception.expect(IllegalArgumentException.class); - exception.expectMessage(CoreMatchers.equalTo(AbstractVariant.VARIANT_END_COORDINATE_CANNOT_BE_NEGATIVE)); - new Variant("1", 1, -1, "C", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + new Variant("1", 1, -1, "C", "T"); + }); + assertEquals(AbstractVariant.VARIANT_END_COORDINATE_CANNOT_BE_NEGATIVE, exception.getMessage()); } @Test public void testNegativeEndCoordinateInRenormalization() throws IllegalArgumentException { Variant variant = new Variant("1", 1, 1, "C", "T"); - exception.expect(IllegalArgumentException.class); - exception.expectMessage(CoreMatchers.equalTo(AbstractVariant.VARIANT_END_COORDINATE_CANNOT_BE_NEGATIVE)); - variant.renormalize(1, -1, "A", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + variant.renormalize(1, -1, "A", "T"); + }); + assertEquals(AbstractVariant.VARIANT_END_COORDINATE_CANNOT_BE_NEGATIVE, exception.getMessage()); } @Test public void testStartHigherThanEndInConstructor() throws IllegalArgumentException { - exception.expect(IllegalArgumentException.class); - exception.expectMessage( - CoreMatchers.equalTo(AbstractVariant.END_POSITION_MUST_BE_EQUAL_OR_GREATER_THAN_THE_START_POSITION)); - new Variant("1", 2, 1, "C", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + new Variant("1", 2, 1, "C", "T"); + }); + assertEquals(AbstractVariant.END_POSITION_MUST_BE_EQUAL_OR_GREATER_THAN_THE_START_POSITION, exception.getMessage()); } @Test public void testStartHigherThanEndInRenormalization() throws IllegalArgumentException { Variant variant = new Variant("1", 1, 1, "C", "T"); - exception.expect(IllegalArgumentException.class); - exception.expectMessage( - CoreMatchers.equalTo(AbstractVariant.END_POSITION_MUST_BE_EQUAL_OR_GREATER_THAN_THE_START_POSITION)); - variant.renormalize(1, 0, "A", "T"); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + variant.renormalize(1, 0, "A", "T"); + }); + assertEquals(AbstractVariant.END_POSITION_MUST_BE_EQUAL_OR_GREATER_THAN_THE_START_POSITION, exception.getMessage()); } @Test diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/GenotypeTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/GenotypeTest.java index f2dea9db..19a79043 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/GenotypeTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/GenotypeTest.java @@ -1,9 +1,9 @@ package uk.ac.ebi.eva.commons.core.models; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.genotype.Genotype; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class GenotypeTest { diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantClassifierTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantClassifierTest.java index 842bb2d4..2a81c7a2 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantClassifierTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantClassifierTest.java @@ -16,10 +16,11 @@ package uk.ac.ebi.eva.commons.core.models; -import org.junit.Test; +import org.junit.jupiter.api.Test; -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; public class VariantClassifierTest { @@ -76,14 +77,18 @@ public void testMNVs() { assertEquals(VariantType.MNV, VariantClassifier.getVariantClassification("AT", "CG", 8)); } - @Test(expected = IllegalArgumentException.class) + @Test public void testHyphensInReference() { - VariantClassifier.getVariantClassification("-", "GG", 2); + assertThrows(IllegalArgumentException.class, () -> { + VariantClassifier.getVariantClassification("-", "GG", 2); + }); } - @Test(expected = IllegalArgumentException.class) + @Test public void testHyphensInAlternate() { - VariantClassifier.getVariantClassification("AA", "-", 2); + assertThrows(IllegalArgumentException.class, () -> { + VariantClassifier.getVariantClassification("AA", "-", 2); + }); } //Test getVariantClassification without subSNPClass @@ -143,13 +148,17 @@ public void testMNVsNoSnpClass() { assertEquals(VariantType.MNV, VariantClassifier.getVariantClassification("AT", "CG")); } - @Test(expected = IllegalArgumentException.class) + @Test public void testHyphensInReferenceNoSnpClass() { - VariantClassifier.getVariantClassification("-", "GG"); + assertThrows(IllegalArgumentException.class, () -> { + VariantClassifier.getVariantClassification("-", "GG"); + }); } - @Test(expected = IllegalArgumentException.class) + @Test public void testHyphensInAlternateNoSnpClass() { - VariantClassifier.getVariantClassification("AA", "-"); + assertThrows(IllegalArgumentException.class, () -> { + VariantClassifier.getVariantClassification("AA", "-"); + }); } } diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantCoreFieldsTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantCoreFieldsTest.java index 39ca282c..39d61ba4 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantCoreFieldsTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantCoreFieldsTest.java @@ -16,9 +16,9 @@ package uk.ac.ebi.eva.commons.core.models; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class VariantCoreFieldsTest { diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantStatisticsTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantStatisticsTest.java index d8704edb..e189ed93 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantStatisticsTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantStatisticsTest.java @@ -1,8 +1,8 @@ package uk.ac.ebi.eva.commons.core.models; -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 VariantStatisticsTest { diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantTypeToSOAccessionMapTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantTypeToSOAccessionMapTest.java index 01031dd6..d9c6a917 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantTypeToSOAccessionMapTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/VariantTypeToSOAccessionMapTest.java @@ -15,24 +15,20 @@ */ package uk.ac.ebi.eva.commons.core.models; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; public class VariantTypeToSOAccessionMapTest { - @Rule - public ExpectedException expectedException = ExpectedException.none(); - @Test public void testInvalidVariantTypeLookup() { - expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage( - String.format(VariantTypeToSOAccessionMap.INVALID_VARIANT_TYPE_EXCEPTION_MESSAGE, - VariantType.NO_ALTERNATE)); - VariantTypeToSOAccessionMap.getSequenceOntologyAccession(VariantType.NO_ALTERNATE); + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + VariantTypeToSOAccessionMap.getSequenceOntologyAccession(VariantType.NO_ALTERNATE); + }); + assertEquals(String.format(VariantTypeToSOAccessionMap.INVALID_VARIANT_TYPE_EXCEPTION_MESSAGE, + VariantType.NO_ALTERNATE), exception.getMessage()); } @Test diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/CoordinatesVcfFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/CoordinatesVcfFactoryTest.java index bf42ca51..4eb981d6 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/CoordinatesVcfFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/CoordinatesVcfFactoryTest.java @@ -15,10 +15,8 @@ */ package uk.ac.ebi.eva.commons.core.models.factories; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; @@ -31,7 +29,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link VariantVcfFactory} @@ -46,7 +44,7 @@ public class CoordinatesVcfFactoryTest { private static VariantVcfFactory factory; - @BeforeClass + @BeforeAll public static void setupClass() { factory = new CoordinatesVcfFactory(); } diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantAggregatedVcfFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantAggregatedVcfFactoryTest.java index 96ede577..9f3a8ccc 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantAggregatedVcfFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantAggregatedVcfFactoryTest.java @@ -19,10 +19,8 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; import uk.ac.ebi.eva.commons.core.models.VariantStatistics; @@ -33,8 +31,9 @@ import java.util.List; import java.util.Properties; -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; /** @@ -49,12 +48,9 @@ public class VariantAggregatedVcfFactoryTest { private VariantAggregatedVcfFactory factory = new VariantAggregatedVcfFactory(); - @Rule - public ExpectedException thrown = ExpectedException.none(); - private ListAppender listAppender; - @Before + @BeforeEach public void setUp() { // Set up appender to capture log messages Logger factoryLogger = (Logger) LoggerFactory.getLogger(VariantVcfFactory.class); @@ -198,24 +194,27 @@ public void variantWithAlleleTotalNumberZero() { public void variantWithAlleleTotalNumberButNotAlleleCount() { String line = "1\t10040\trs123\tT\tC\t.\t.\tAN=5"; - thrown.expect(IncompleteInformationException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IncompleteInformationException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } @Test public void variantWithAlleleCountButNotAlleleTotalNumber() { String line = "1\t10040\trs123\tT\tC\t.\t.\tAC=5"; - thrown.expect(IncompleteInformationException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IncompleteInformationException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } @Test public void testVariantWithNoAlleleCountsOrFrequency() { String line = "1\t1000\t.\tT\tG\t.\t.\tAA=A"; - thrown.expect(IncompleteInformationException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IncompleteInformationException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } @Test @@ -234,8 +233,9 @@ public void allowVariantWithNoAlleleCountsOrFrequency() { public void testMultiallelicVariantWithNoAlleleCountsOrFrequency() { String line = "1\t1000\t.\tT\tG,A\t.\t.\tAA=A"; - thrown.expect(IncompleteInformationException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IncompleteInformationException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } private void assertNonVariantLogged() { diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantGenotypedVcfFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantGenotypedVcfFactoryTest.java index ba24ec4b..44cbf37c 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantGenotypedVcfFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantGenotypedVcfFactoryTest.java @@ -19,10 +19,8 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; @@ -33,9 +31,10 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -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.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; public class VariantGenotypedVcfFactoryTest { @@ -45,12 +44,9 @@ public class VariantGenotypedVcfFactoryTest { private static VariantVcfFactory factory = new VariantGenotypedVcfFactory(); - @Rule - public ExpectedException thrown = ExpectedException.none(); - private ListAppender listAppender; - @Before + @BeforeEach public void setUp() { // Set up appender to capture log messages Logger factoryLogger = (Logger) LoggerFactory.getLogger(VariantVcfFactory.class); @@ -422,8 +418,9 @@ public void testVariantWithNoSampleInformation() { // VariantGenotypedVcfFactory, that expects to find genotypes String line = "1\t1000\t.\tT\tG\t.\t.\tAF=0.5"; - thrown.expect(IllegalArgumentException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IllegalArgumentException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } @Test @@ -432,8 +429,9 @@ public void testRequireNoEvidence() { // VariantGenotypedVcfFactory, that expects to find genotypes String line = "1\t1000\t.\tT\tG\t.\t.\tAF=0.5"; - thrown.expect(UnsupportedOperationException.class); - factory.setRequireEvidence(false); + assertThrows(UnsupportedOperationException.class, () -> { + factory.setRequireEvidence(false); + }); } @Test @@ -442,8 +440,9 @@ public void testMultiallelicVariantWitnNoSampleInformation() { // VariantGenotypedVcfFactory, that expects to find genotypes String line = "1\t1000\t.\tT\tG,C\t.\t.\tAF=0.5"; - thrown.expect(IllegalArgumentException.class); - factory.create(FILE_ID, STUDY_ID, line); + assertThrows(IllegalArgumentException.class, () -> { + factory.create(FILE_ID, STUDY_ID, line); + }); } @Test diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfEVSFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfEVSFactoryTest.java index 27f5c40d..248b0f0a 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfEVSFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfEVSFactoryTest.java @@ -15,7 +15,7 @@ */ package uk.ac.ebi.eva.commons.core.models.factories; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.genotype.Genotype; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; @@ -29,8 +29,8 @@ import java.util.Map; import java.util.Properties; -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; /** diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfExacFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfExacFactoryTest.java index 1c7f93d1..27e36c1b 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfExacFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfExacFactoryTest.java @@ -15,7 +15,7 @@ */ package uk.ac.ebi.eva.commons.core.models.factories; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.VariantStatistics; import uk.ac.ebi.eva.commons.core.models.genotype.Genotype; @@ -27,8 +27,8 @@ import java.util.Map; import java.util.Properties; -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; /** * {@link VariantVcfExacFactory} diff --git a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfFactoryTest.java b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfFactoryTest.java index 9cae83f3..5dd8345e 100644 --- a/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfFactoryTest.java +++ b/variation-commons-core/src/test/java/uk/ac/ebi/eva/commons/core/models/factories/VariantVcfFactoryTest.java @@ -15,10 +15,8 @@ */ package uk.ac.ebi.eva.commons.core.models.factories; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; import uk.ac.ebi.eva.commons.core.models.pipeline.VariantSourceEntry; @@ -31,7 +29,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link VariantVcfFactory} @@ -46,10 +44,7 @@ public class VariantVcfFactoryTest { private static VariantVcfFactory factory; - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @BeforeClass + @BeforeAll public static void setupClass() { factory = instantiateAbstractVcfFactory(); } diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Analysis.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Analysis.java index aa5c0eca..f347f405 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Analysis.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Analysis.java @@ -16,7 +16,7 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import javax.persistence.Entity; +import jakarta.persistence.Entity; import java.util.Date; import java.util.Objects; diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/BaseEntity.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/BaseEntity.java new file mode 100644 index 00000000..1d58146f --- /dev/null +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/BaseEntity.java @@ -0,0 +1,50 @@ +/* + * Copyright 2015 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.eva.commons.jpa.models.metadata; + +import org.springframework.data.domain.Persistable; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; +import java.io.Serializable; + +/** + * Base class for JPA entities, replacing Spring Data JPA's AbstractPersistable + * which was removed in Spring Data JPA 3.x. + */ +@MappedSuperclass +public abstract class BaseEntity implements Persistable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private PK id; + + @Override + public PK getId() { + return id; + } + + protected void setId(PK id) { + this.id = id; + } + + @Override + public boolean isNew() { + return id == null; + } +} diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/File.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/File.java index 75dcbded..c75847f4 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/File.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/File.java @@ -15,13 +15,11 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.springframework.data.jpa.domain.AbstractPersistable; - -import javax.persistence.Entity; -import javax.persistence.Index; -import javax.persistence.ManyToMany; -import javax.persistence.Table; -import javax.persistence.Transient; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -31,7 +29,7 @@ */ @Entity @Table(indexes = {@Index(name = "file_unique", columnList = "name,type,md5", unique = true)}) -public class File extends AbstractPersistable { +public class File extends BaseEntity { private static final long serialVersionUID = 4602079283068239196L; diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGenerator.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGenerator.java index 960eb4e7..0724344a 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGenerator.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGenerator.java @@ -15,21 +15,19 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.springframework.data.jpa.domain.AbstractPersistable; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.DiscriminatorColumn; -import javax.persistence.Entity; -import javax.persistence.ForeignKey; -import javax.persistence.Inheritance; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToMany; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.persistence.Transient; -import javax.persistence.UniqueConstraint; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.DiscriminatorColumn; +import jakarta.persistence.Entity; +import jakarta.persistence.ForeignKey; +import jakarta.persistence.Inheritance; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.persistence.UniqueConstraint; import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -41,7 +39,7 @@ @Inheritance @DiscriminatorColumn(name = "type") @Table(uniqueConstraints = {@UniqueConstraint(name = "alias_unique", columnNames = "alias")}) -public abstract class FileGenerator extends AbstractPersistable { +public abstract class FileGenerator extends BaseEntity { private static final long serialVersionUID = -5926609525556333330L; diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Organisation.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Organisation.java index a9ab59a7..1e4836d7 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Organisation.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Organisation.java @@ -16,11 +16,10 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; import org.apache.commons.validator.routines.EmailValidator; -import org.springframework.data.jpa.domain.AbstractPersistable; -import javax.persistence.Entity; -import javax.persistence.Index; -import javax.persistence.Table; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.Table; import java.util.Objects; /** @@ -28,7 +27,7 @@ */ @Entity @Table(indexes = {@Index(name = "organisation_unique", columnList = "name,address", unique = true)}) -public class Organisation extends AbstractPersistable { +public class Organisation extends BaseEntity { private static final long serialVersionUID = -8470868229663325878L; diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Publication.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Publication.java index 97f2588d..0e7dfbc2 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Publication.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Publication.java @@ -15,13 +15,11 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.springframework.data.jpa.domain.AbstractPersistable; - -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.Index; -import javax.persistence.Table; -import javax.persistence.Transient; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; import java.util.Calendar; import java.util.Collections; import java.util.HashSet; @@ -34,7 +32,7 @@ */ @Entity @Table(indexes = {@Index(name = "publication_unique", columnList = "title,journal,volume", unique = true)}) -public class Publication extends AbstractPersistable { +public class Publication extends BaseEntity { private static final long serialVersionUID = 8055335219199952073L; diff --git a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Study.java b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Study.java index bbc37e10..c3eccefd 100644 --- a/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Study.java +++ b/variation-commons-jpa/src/main/java/uk/ac/ebi/eva/commons/jpa/models/metadata/Study.java @@ -15,16 +15,14 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.springframework.data.jpa.domain.AbstractPersistable; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.Index; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.PreRemove; -import javax.persistence.Table; -import javax.persistence.Transient; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.PreRemove; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; import java.net.URI; import java.util.Collections; import java.util.HashSet; @@ -33,7 +31,7 @@ @Entity @Table(indexes = {@Index(name = "study_unique", columnList = "title,material,scope,description,alias", unique = true)}) -public class Study extends AbstractPersistable { +public class Study extends BaseEntity { private static final long serialVersionUid = 3947143813564096660L; diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/AnalysisTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/AnalysisTest.java index 9fa9e1a8..96484079 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/AnalysisTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/AnalysisTest.java @@ -16,22 +16,23 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.Date; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; public class AnalysisTest { Study study; - @Before + @BeforeEach public void setUp() { study = new Study("Some study", "PRJEB12345", "Study description", Study.Material.UNKNOWN, Study.Scope.UNKNOWN); } @@ -69,19 +70,25 @@ public void testConstructorSuccessful() { assertNotNull(analysis3.getDate()); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoAlias() { - Analysis analysis = new Analysis(null, "Title", "Description", null, null, null, true, null); + assertThrows(NullPointerException.class, () -> { + Analysis analysis = new Analysis(null, "Title", "Description", null, null, null, true, null); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoTitle() { - Analysis analysis = new Analysis("Analysis1", null, "Description", null, null, null, true, null); + assertThrows(NullPointerException.class, () -> { + Analysis analysis = new Analysis("Analysis1", null, "Description", null, null, null, true, null); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoDescription() { - Analysis analysis = new Analysis("Analysis1", "Title", null, null, null, null, true, null); + assertThrows(NullPointerException.class, () -> { + Analysis analysis = new Analysis("Analysis1", "Title", null, null, null, null, true, null); + }); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/DatasetTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/DatasetTest.java index acac18b9..3d67dd8f 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/DatasetTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/DatasetTest.java @@ -1,14 +1,14 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Created by parce on 08/10/15. diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/ExperimentTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/ExperimentTest.java index 2968b092..e56ba2d6 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/ExperimentTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/ExperimentTest.java @@ -1,14 +1,14 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Created by parce on 08/10/15. diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGeneratorTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGeneratorTest.java index a70abf88..b3d277fb 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGeneratorTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileGeneratorTest.java @@ -1,43 +1,54 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.isIn; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * Created by parce on 07/10/15. */ public class FileGeneratorTest { - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoTitle() { - Study study = new Study(null, "Alias", "Description", Study.Material.DNA, Study.Scope.OTHER); + assertThrows(NullPointerException.class, () -> { + Study study = new Study(null, "Alias", "Description", Study.Material.DNA, Study.Scope.OTHER); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoAlias() { - Study study = new Study("Title", null, "Description", Study.Material.DNA, Study.Scope.OTHER); + assertThrows(NullPointerException.class, () -> { + Study study = new Study("Title", null, "Description", Study.Material.DNA, Study.Scope.OTHER); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoDescription() { - Study study = new Study("Title", "Alias", null, Study.Material.DNA, Study.Scope.OTHER); + assertThrows(NullPointerException.class, () -> { + Study study = new Study("Title", "Alias", null, Study.Material.DNA, Study.Scope.OTHER); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoMaterial() { - Study study = new Study("Title", "Alias", "Description", null, Study.Scope.OTHER); + assertThrows(NullPointerException.class, () -> { + Study study = new Study("Title", "Alias", "Description", null, Study.Scope.OTHER); + }); } - @Test(expected = NullPointerException.class) + @Test public void testConstructorNoScope() { - Study study = new Study("Title", "Alias", "Description", Study.Material.DNA, null); + assertThrows(NullPointerException.class, () -> { + Study study = new Study("Title", "Alias", "Description", Study.Material.DNA, null); + }); } @Test diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileTest.java index 1edd1cd4..e5826542 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/FileTest.java @@ -1,13 +1,13 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertThat; /** * Created by parce on 07/10/15. diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/OrganisationTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/OrganisationTest.java index 3a14f915..b11c4cc1 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/OrganisationTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/OrganisationTest.java @@ -1,13 +1,13 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.instanceOf; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -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; /** @@ -17,7 +17,7 @@ public class OrganisationTest { Organisation x, y, z, notx; - @Before + @BeforeEach public void setUp() { x = new Organisation("Sanger", "Wellcome Genome Campus"); y = new Organisation("Sanger", "Wellcome Genome Campus"); @@ -66,7 +66,7 @@ private Throwable attemptSetEmail(Organisation organisation, String email) { * A class is equal to itself. */ public void testEqual_ToSelf() { - assertTrue("Class equal to itself.", x.equals(x)); + assertTrue(x.equals(x), "Class equal to itself."); } /** @@ -74,7 +74,7 @@ public void testEqual_ToSelf() { */ @Test public void testPassIncompatibleType_isFalse() { - assertFalse("Passing incompatible object to equals should return false", x.equals("string")); + assertFalse(x.equals("string"), "Passing incompatible object to equals should return false"); } /** @@ -82,7 +82,7 @@ public void testPassIncompatibleType_isFalse() { */ @Test public void testNullReference_isFalse() { - assertFalse("Passing null to equals should return false", x.equals(null)); + assertFalse(x.equals(null), "Passing null to equals should return false"); } /** @@ -91,8 +91,8 @@ public void testNullReference_isFalse() { */ @Test public void testEquals_isReflexive_isSymmetric() { - assertTrue("Reflexive test fail x,y", x.equals(y)); - assertTrue("Symmetric test fail y", y.equals(x)); + assertTrue(x.equals(y), "Reflexive test fail x,y"); + assertTrue(y.equals(x), "Symmetric test fail y"); } /** @@ -102,9 +102,9 @@ public void testEquals_isReflexive_isSymmetric() { */ @Test public void testEquals_isTransitive() { - assertTrue("Transitive test fails x,y", x.equals(y)); - assertTrue("Transitive test fails y,z", y.equals(z)); - assertTrue("Transitive test fails x,z", x.equals(z)); + assertTrue(x.equals(y), "Transitive test fails x,y"); + assertTrue(y.equals(z), "Transitive test fails y,z"); + assertTrue(x.equals(z), "Transitive test fails x,z"); } /** @@ -112,9 +112,9 @@ public void testEquals_isTransitive() { */ @Test public void testEquals_isConsistent() { - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); @@ -128,8 +128,8 @@ public void testEquals_isConsistent() { public void testHashcode_isConsistent() { int initial_hashcode = x.hashCode(); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); } /** @@ -140,7 +140,7 @@ public void testHashcode_twoEqualsObjects_produceSameNumber() { int xhashcode = x.hashCode(); int yhashcode = y.hashCode(); - assertEquals("Equal object, return equal hashcode test fails", xhashcode, yhashcode); + assertEquals(xhashcode, yhashcode, "Equal object, return equal hashcode test fails"); } /** @@ -152,7 +152,7 @@ public void testHashcode_twoUnEqualObjects_produceDifferentNumber() { int xhashcode = x.hashCode(); int notxHashcode = notx.hashCode(); - assertTrue("Equal object, return unequal hashcode test fails", !(xhashcode == notxHashcode)); + assertTrue(!(xhashcode == notxHashcode), "Equal object, return unequal hashcode test fails"); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/PublicationTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/PublicationTest.java index bf8a24ef..9cbdc5f3 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/PublicationTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/PublicationTest.java @@ -1,13 +1,13 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.Arrays; -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; /** * Created by tom on 15/10/15. @@ -16,7 +16,7 @@ public class PublicationTest { Publication x, y, z, notx; - @Before + @BeforeEach public void setUp() { x = new Publication("A good article", "PlosOne", "2", Arrays.asList("Mrs Example", "Mr Scientist", "Professor Java"), "1234", "Pubmed"); y = new Publication("A good article", "PlosOne", "2", Arrays.asList("Mrs Example", "Mr Scientist", "Professor Java"), "1234", "Pubmed"); @@ -29,7 +29,7 @@ public void setUp() { * A class is equal to itself. */ public void testEqual_ToSelf() { - assertTrue("Class equal to itself.", x.equals(x)); + assertTrue(x.equals(x), "Class equal to itself."); } /** @@ -37,7 +37,7 @@ public void testEqual_ToSelf() { */ @Test public void testPassIncompatibleType_isFalse() { - assertFalse("Passing incompatible object to equals should return false", x.equals("string")); + assertFalse(x.equals("string"), "Passing incompatible object to equals should return false"); } /** @@ -45,7 +45,7 @@ public void testPassIncompatibleType_isFalse() { */ @Test public void testNullReference_isFalse() { - assertFalse("Passing null to equals should return false", x.equals(null)); + assertFalse(x.equals(null), "Passing null to equals should return false"); } /** @@ -54,8 +54,8 @@ public void testNullReference_isFalse() { */ @Test public void testEquals_isReflexive_isSymmetric() { - assertTrue("Reflexive test fail x,y", x.equals(y)); - assertTrue("Symmetric test fail y", y.equals(x)); + assertTrue(x.equals(y), "Reflexive test fail x,y"); + assertTrue(y.equals(x), "Symmetric test fail y"); } @@ -65,9 +65,9 @@ public void testEquals_isReflexive_isSymmetric() { */ @Test public void testEquals_isTransitive() { - assertTrue("Transitive test fails x,y", x.equals(y)); - assertTrue("Transitive test fails y,z", y.equals(z)); - assertTrue("Transitive test fails x,z", x.equals(z)); + assertTrue(x.equals(y), "Transitive test fails x,y"); + assertTrue(y.equals(z), "Transitive test fails y,z"); + assertTrue(x.equals(z), "Transitive test fails x,z"); } /** @@ -75,9 +75,9 @@ public void testEquals_isTransitive() { */ @Test public void testEquals_isConsistent() { - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); @@ -90,8 +90,8 @@ public void testEquals_isConsistent() { public void testHashcode_isConsistent() { int initial_hashcode = x.hashCode(); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); } /** @@ -103,7 +103,7 @@ public void testHashcode_twoEqualsObjects_produceSameNumber() { int xhashcode = x.hashCode(); int yhashcode = y.hashCode(); - assertEquals("Equal object, return equal hashcode test fails", xhashcode, yhashcode); + assertEquals(xhashcode, yhashcode, "Equal object, return equal hashcode test fails"); } /** @@ -115,7 +115,7 @@ public void testHashcode_twoUnEqualObjects_produceDifferentNumber() { int xhashcode = x.hashCode(); int notxHashcode = notx.hashCode(); - assertTrue("Equal object, return unequal hashcode test fails", !(xhashcode == notxHashcode)); + assertTrue(!(xhashcode == notxHashcode), "Equal object, return unequal hashcode test fails"); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/StudyTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/StudyTest.java index f5c76897..0e08a44b 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/StudyTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/StudyTest.java @@ -1,22 +1,23 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.instanceOf; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertThat; -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.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Created by tom on 07/10/15. @@ -25,7 +26,7 @@ public class StudyTest { Study x, y, z, notx; - @Before + @BeforeEach public void setUp() { x = new Study("This is a title", "aliasA", "a great study", Study.Material.DNA, Study.Scope.MULTI_ISOLATE); y = new Study("This is a title", "aliasA", "a great study", Study.Material.DNA, Study.Scope.MULTI_ISOLATE); @@ -292,7 +293,7 @@ private void testAddChildStudyHelper(Study pStudy, Set studies) { * A class is equal to itself. */ public void testEqual_ToSelf() { - assertTrue("Class equal to itself.", x.equals(x)); + assertTrue(x.equals(x), "Class equal to itself."); } /** @@ -300,7 +301,7 @@ public void testEqual_ToSelf() { */ @Test public void testPassIncompatibleType_isFalse() { - assertFalse("Passing incompatible object to equals should return false", x.equals("string")); + assertFalse(x.equals("string"), "Passing incompatible object to equals should return false"); } /** @@ -308,7 +309,7 @@ public void testPassIncompatibleType_isFalse() { */ @Test public void testNullReference_isFalse() { - assertFalse("Passing null to equals should return false", x.equals(null)); + assertFalse(x.equals(null), "Passing null to equals should return false"); } /** @@ -317,8 +318,8 @@ public void testNullReference_isFalse() { */ @Test public void testEquals_isReflexive_isSymmetric() { - assertTrue("Reflexive test fail x,y", x.equals(y)); - assertTrue("Symmetric test fail y", y.equals(x)); + assertTrue(x.equals(y), "Reflexive test fail x,y"); + assertTrue(y.equals(x), "Symmetric test fail y"); } /** @@ -327,9 +328,9 @@ public void testEquals_isReflexive_isSymmetric() { */ @Test public void testEquals_isTransitive() { - assertTrue("Transitive test fails x,y", x.equals(y)); - assertTrue("Transitive test fails y,z", y.equals(z)); - assertTrue("Transitive test fails x,z", x.equals(z)); + assertTrue(x.equals(y), "Transitive test fails x,y"); + assertTrue(y.equals(z), "Transitive test fails y,z"); + assertTrue(x.equals(z), "Transitive test fails x,z"); } /** @@ -337,9 +338,9 @@ public void testEquals_isTransitive() { */ @Test public void testEquals_isConsistent() { - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); - assertTrue("Consistent test fail x,y", x.equals(y)); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); + assertTrue(x.equals(y), "Consistent test fail x,y"); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); assertFalse(notx.equals(x)); @@ -352,8 +353,8 @@ public void testEquals_isConsistent() { public void testHashcode_isConsistent() { int initial_hashcode = x.hashCode(); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); - assertEquals("Consistent hashcode test fails", initial_hashcode, x.hashCode()); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); + assertEquals(initial_hashcode, x.hashCode(), "Consistent hashcode test fails"); } /** @@ -365,7 +366,7 @@ public void testHashcode_twoEqualsObjects_produceSameNumber() { int xhashcode = x.hashCode(); int yhashcode = y.hashCode(); - assertEquals("Equal object, return equal hashcode test fails", xhashcode, yhashcode); + assertEquals(xhashcode, yhashcode, "Equal object, return equal hashcode test fails"); } /** @@ -377,17 +378,21 @@ public void testHashcode_twoUnEqualObjects_produceDifferentNumber() { int xhashcode = x.hashCode(); int notxHashcode = notx.hashCode(); - assertNotEquals("Equal object, return unequal hashcode test fails", xhashcode, notxHashcode); + assertNotEquals(xhashcode, notxHashcode, "Equal object, return unequal hashcode test fails"); } - @Test(expected = IllegalArgumentException.class) + @Test public void testSelfChild() { - x.addChildStudy(x); + assertThrows(IllegalArgumentException.class, () -> { + x.addChildStudy(x); + }); } - @Test(expected = IllegalArgumentException.class) + @Test public void testSelfParent() { - x.addChildStudy(x); + assertThrows(IllegalArgumentException.class, () -> { + x.addChildStudy(x); + }); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/AnalysisDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/AnalysisDatabaseTest.java index aa2f8791..77da9b7e 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/AnalysisDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/AnalysisDatabaseTest.java @@ -15,13 +15,13 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.Analysis; @@ -31,19 +31,20 @@ import java.util.Date; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class AnalysisDatabaseTest { @@ -57,7 +58,7 @@ public class AnalysisDatabaseTest { Analysis analysis1, analysis2, analysis3; - @Before + @BeforeEach public void setUp() { analysis1 = new Analysis("analysis1", "Analysis 1 title", "Analysis 1 description"); analysis2 = new Analysis("analysis2", "Analysis 2 title", "Analysis 2 description"); @@ -183,14 +184,16 @@ public void testDelete() { * * @todo How to report this kind of errors? */ - @Test(expected = DataIntegrityViolationException.class) + @Test public void testUpdateDuplicate() { Analysis savedAnalysis1 = repository.save(analysis1); Analysis savedAnalysis2 = repository.save(analysis2); savedAnalysis1.setAlias("analysis2"); repository.save(savedAnalysis1); - repository.findAll(); + assertThrows(DataIntegrityViolationException.class, () -> { + repository.findAll(); + }); } /** diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/FileDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/FileDatabaseTest.java index 49b94788..96e3079a 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/FileDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/FileDatabaseTest.java @@ -15,24 +15,25 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.DatabaseTestConfiguration; import uk.ac.ebi.eva.commons.jpa.models.metadata.File; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.empty; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class FileDatabaseTest { @@ -42,7 +43,7 @@ public class FileDatabaseTest { File file1, file2; - @Before + @BeforeEach public void setUp() { file1 = new File("file1.vcf", File.Type.VCF, "7s6efgwe78748"); file2 = new File("file2.vcf", File.Type.VCF, "7s6efgwe78748"); @@ -132,13 +133,15 @@ public void testDelete() { * * @todo How to report this kind of errors? */ - @Test(expected = DataIntegrityViolationException.class) + @Test public void testUpdateDuplicate() { File savedFile1 = repository.save(file1); File savedFile2 = repository.save(file2); savedFile1.setName(savedFile2.getName()); repository.save(savedFile1); - repository.findAll(); + assertThrows(DataIntegrityViolationException.class, () -> { + repository.findAll(); + }); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/OrganisationDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/OrganisationDatabaseTest.java index ce4077ef..3910b20a 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/OrganisationDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/OrganisationDatabaseTest.java @@ -15,13 +15,13 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.DatabaseTestConfiguration; @@ -29,12 +29,13 @@ import java.util.Iterator; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -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.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class OrganisationDatabaseTest { @@ -44,7 +45,7 @@ public class OrganisationDatabaseTest { Organisation organisation1, organisation2; - @Before + @BeforeEach public void setUp() { organisation1 = new Organisation("EMBL-EBI", "Hinxton, Cambridgeshire, UK"); organisation2 = new Organisation("CIPF", "Valencia, Spain"); @@ -154,7 +155,7 @@ public void testUpdateNonDuplicate() { * * @todo How to report this kind of errors? */ - @Test(expected = DataIntegrityViolationException.class) + @Test public void testUpdateDuplicate() { Organisation savedOrganisation1 = repository.save(organisation1); Organisation savedOrganisation2 = repository.save(organisation2); @@ -162,6 +163,8 @@ public void testUpdateDuplicate() { savedOrganisation1.setName(organisation2.getName()); savedOrganisation1.setAddress(organisation2.getAddress()); repository.save(savedOrganisation1); - repository.findAll(); + assertThrows(DataIntegrityViolationException.class, () -> { + repository.findAll(); + }); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/PublicationDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/PublicationDatabaseTest.java index 42cfdae7..1cff39dd 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/PublicationDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/PublicationDatabaseTest.java @@ -1,12 +1,12 @@ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.DatabaseTestConfiguration; import uk.ac.ebi.eva.commons.jpa.models.metadata.Publication; @@ -16,18 +16,19 @@ import java.util.Iterator; import java.util.List; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * Created by parce on 20/10/15. */ -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class PublicationDatabaseTest { @@ -37,7 +38,7 @@ public class PublicationDatabaseTest { Publication publication1, publication2, publication3; - @Before + @BeforeEach public void setUp() { String author1 = "Author 1"; String author2 = "Author 2"; @@ -192,7 +193,7 @@ public void testUpdateNonDuplicate() { * * @todo How to report this kind of errors? */ - @Test(expected = DataIntegrityViolationException.class) + @Test public void testUpdateDuplicate() { Publication savedPublication1 = repository.save(publication1); Publication savedPublication3 = repository.save(publication3); @@ -203,6 +204,8 @@ public void testUpdateDuplicate() { // is not necessary update the authors because publication 1 has the same author list than publication 3 repository.save(savedPublication1); - repository.findAll(); + assertThrows(DataIntegrityViolationException.class, () -> { + repository.findAll(); + }); } } diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyDatabaseTest.java index a9c9e2f2..ffd59011 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyDatabaseTest.java @@ -15,13 +15,13 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.Analysis; @@ -32,15 +32,16 @@ import java.util.Optional; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +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(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class StudyDatabaseTest { @@ -60,7 +61,7 @@ public class StudyDatabaseTest { Study study1, study2; Organisation organisation1, organisation2; - @Before + @BeforeEach public void setUp() { // Study(String title, String alias, String description, Material material, Scope scope) @@ -161,13 +162,15 @@ public void testDelete() { /** * Updating a study assigning the unique key from other must fail when serialising. */ - @Test(expected = DataIntegrityViolationException.class) + @Test public void testUpdateDuplicate() { Study savedStudy1 = repository.save(study1); Study savedStudy2 = repository.save(study2); savedStudy1.setTitle(savedStudy2.getTitle()); repository.save(savedStudy1); - repository.findAll(); + assertThrows(DataIntegrityViolationException.class, () -> { + repository.findAll(); + }); } /** diff --git a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyRelationDatabaseTest.java b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyRelationDatabaseTest.java index 1b220e67..24b5c298 100644 --- a/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyRelationDatabaseTest.java +++ b/variation-commons-jpa/src/test/java/uk/ac/ebi/eva/commons/jpa/models/metadata/database/StudyRelationDatabaseTest.java @@ -15,12 +15,12 @@ */ package uk.ac.ebi.eva.commons.jpa.models.metadata.database; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.eva.commons.jpa.models.metadata.DatabaseTestConfiguration; import uk.ac.ebi.eva.commons.jpa.models.metadata.Study; @@ -29,12 +29,12 @@ import java.util.HashSet; import java.util.Set; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Created by tom on 29/10/15. */ -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @Transactional @ContextConfiguration(classes = DatabaseTestConfiguration.class) public class StudyRelationDatabaseTest { @@ -45,7 +45,7 @@ public class StudyRelationDatabaseTest { Study parentStudy1, parentStudy2; Study childStudy1, childStudy2, childStudy3, childStudy4, childStudy5, childStudy6; - @Before + @BeforeEach public void setUp() { parentStudy1 = new Study("P Study 1", "P1", "Parent study number 1", Study.Material.DNA, Study.Scope.MULTI_ISOLATE); parentStudy2 = new Study("P Study 2", "P2", "Parent study number 2", Study.Material.DNA, Study.Scope.MULTI_ISOLATE); diff --git a/variation-commons-mongodb/pom.xml b/variation-commons-mongodb/pom.xml index 79c0dcba..a6721512 100644 --- a/variation-commons-mongodb/pom.xml +++ b/variation-commons-mongodb/pom.xml @@ -21,8 +21,23 @@ spring-boot-starter-batch - com.lordofthejars - nosqlunit-mongodb + org.testcontainers + mongodb + test + + + org.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + junit-jupiter + test + + + com.fasterxml.jackson.core + jackson-databind test diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/configuration/EvaRepositoriesConfiguration.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/configuration/EvaRepositoriesConfiguration.java index d50e0d16..3650fac7 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/configuration/EvaRepositoriesConfiguration.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/configuration/EvaRepositoriesConfiguration.java @@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.DbRefResolver; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -38,7 +38,7 @@ public class EvaRepositoriesConfiguration { private ApplicationContext applicationContext; @Autowired - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; @Bean public MongoMappingContext mongoMappingContext() { diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/subdocuments/AnnotationIndexMongo.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/subdocuments/AnnotationIndexMongo.java index ef0708b3..3602062b 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/subdocuments/AnnotationIndexMongo.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/subdocuments/AnnotationIndexMongo.java @@ -75,8 +75,8 @@ public class AnnotationIndexMongo { * @throws IllegalArgumentException If {@param vepVersion} or {@param vepCacheVersion} are null or empty values. */ public AnnotationIndexMongo(String vepVersion, String vepCacheVersion) { - Assert.hasText(vepVersion); - Assert.hasText(vepCacheVersion); + Assert.hasText(vepVersion, "vepVersion must not be empty"); + Assert.hasText(vepCacheVersion, "vepCacheVersion must not be empty"); this.vepVersion = vepVersion; this.vepCacheVersion = vepCacheVersion; this.soAccessions = new HashSet<>(); diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReader.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReader.java index 4dc486b3..bdae5522 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReader.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReader.java @@ -19,7 +19,7 @@ import com.mongodb.ClientSessionOptions; import com.mongodb.MongoClientException; import com.mongodb.client.ClientSession; -import com.mongodb.util.JSON; +import org.bson.json.JsonWriterSettings; import org.bson.BsonDocument; import org.bson.Document; import org.slf4j.Logger; @@ -30,7 +30,8 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.util.CloseableIterator; +import java.util.Iterator; +import java.util.stream.Stream; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -80,7 +81,9 @@ public class MongoDbCursorItemReader extends AbstractItemCountingItemStreamIt private List parameterValues; - private CloseableIterator cursor; + private Stream cursorStream; + + private Iterator cursor; private Query mongoQuery; @@ -219,7 +222,7 @@ protected void doOpen() throws Exception { ClientSessionOptions sessionOptions = ClientSessionOptions.builder().causallyConsistent(true).build(); ClientSession session = null; try { - session = this.mongoTemplate.getMongoDbFactory().getSession(sessionOptions); + session = this.mongoTemplate.getMongoDatabaseFactory().getSession(sessionOptions); } catch (MongoClientException ex) { // Handle stand-alone instances that don't have session support if (ex.getMessage().toLowerCase().contains("sessions are not supported")) { @@ -259,16 +262,17 @@ private Object initializeCursor() { logger.info("Issuing MongoDB query: {}", mongoQuery); if(StringUtils.hasText(collection)) { - cursor = this.mongoTemplate.stream(mongoQuery, type, collection); + cursorStream = this.mongoTemplate.stream(mongoQuery, type, collection); } else { - cursor = this.mongoTemplate.stream(mongoQuery, type); + cursorStream = this.mongoTemplate.stream(mongoQuery, type); } + cursor = cursorStream.iterator(); return null; } @Override protected void doClose() throws Exception { - cursor.close(); + cursorStream.close(); } /** @@ -299,7 +303,21 @@ private String replacePlaceholders(String input, List values) { // Copied from StringBasedMongoQuery...is there a place where this type of logic is already exposed? private String getParameterWithIndex(List values, int index) { - return JSON.serialize(values.get(index)); + Object value = values.get(index); + if (value == null) { + return "null"; + } + if (value instanceof String) { + return "\"" + value + "\""; + } + if (value instanceof Number || value instanceof Boolean) { + return value.toString(); + } + if (value instanceof Document) { + return ((Document) value).toJson(JsonWriterSettings.builder().build()); + } + return new Document("v", value).toJson(JsonWriterSettings.builder().build()) + .replaceFirst("\\{\\s*\"v\"\\s*:\\s*", "").replaceFirst("\\s*\\}$", ""); } private Sort convertToSort(Map sorts) { @@ -309,6 +327,6 @@ private Sort convertToSort(Map sorts) { sortValues.add(new Sort.Order(curSort.getValue(), curSort.getKey())); } - return new Sort(sortValues); + return Sort.by(sortValues); } } diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryImpl.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryImpl.java index 7df82d56..e4217e5d 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryImpl.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryImpl.java @@ -22,7 +22,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.AggregationResults; @@ -56,7 +56,7 @@ public class VariantRepositoryImpl implements VariantRepositoryCustom { private static final String GENE_IDS_FIELD = VariantMongo.ANNOTATION_FIELD + "." + AnnotationIndexMongo.XREFS_FIELD; @Autowired - public VariantRepositoryImpl(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { + public VariantRepositoryImpl(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { mongoTemplate = new MongoTemplate(mongoDbFactory, mappingMongoConverter); } @@ -157,9 +157,9 @@ private List findByComplexFiltersHelper(Query query, List sortProperties = new ArrayList(); sortProperties.add(VariantMongo.CHROMOSOME_FIELD); sortProperties.add(VariantMongo.START_FIELD); - query.with(new Sort(Sort.Direction.ASC, sortProperties)); + query.with(Sort.by(Sort.Direction.ASC, sortProperties.toArray(new String[0]))); - Pageable pageable1 = (pageable != null) ? pageable : new PageRequest(0, 10); + Pageable pageable1 = (pageable != null) ? pageable : PageRequest.of(0, 10); query.with(pageable1); if (exclude != null && !exclude.isEmpty()) { diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationsService.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationsService.java index 01582671..eb92ebca 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationsService.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationsService.java @@ -286,7 +286,7 @@ public Long countByRegionAndOtherBeaconFilters(Region startRange, Region endRang * @return Lowest start coordinate, or null if no variants are found for that chromosome and studies */ public Long findChromosomeLowestReportedCoordinate(String chromosome, List studyIds) { - Sort startAscendingSort = new Sort(Sort.Direction.ASC, VariantMongo.START_FIELD); + Sort startAscendingSort = Sort.by(Sort.Direction.ASC, VariantMongo.START_FIELD); VariantMongo variant = variantRepository.findOneByChromosomeAndStudyInSorted(chromosome, studyIds, startAscendingSort); return getVariantStart(variant); @@ -299,7 +299,7 @@ public Long findChromosomeLowestReportedCoordinate(String chromosome, List studyIds) { - Sort startDescendingSort = new Sort(Sort.Direction.DESC, VariantMongo.START_FIELD); + Sort startDescendingSort = Sort.by(Sort.Direction.DESC, VariantMongo.START_FIELD); VariantMongo variant = variantRepository.findOneByChromosomeAndStudyInSorted(chromosome, studyIds, startDescendingSort); return getVariantStart(variant); diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoClientURIBuilder.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoClientURIBuilder.java index 0594aa0c..d58885a3 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoClientURIBuilder.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoClientURIBuilder.java @@ -1,6 +1,6 @@ package uk.ac.ebi.eva.commons.mongodb.utils; -import com.mongodb.MongoClientURI; +import com.mongodb.ConnectionString; import com.mongodb.ReadPreference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,7 +96,7 @@ public MongoClientURIBuilder param(final String key, final String value) { return this; } - public MongoClientURI build() { + public ConnectionString build() { StringBuilder uri = new StringBuilder("mongodb://"); if (Objects.nonNull(userName) && !userName.isEmpty() && Objects.nonNull(password) && !password.isEmpty()) { @@ -118,6 +118,6 @@ public MongoClientURI build() { uri.append(format("%s=%s", entry.getKey(), entry.getValue())); } } - return new MongoClientURI(uri.toString()); + return new ConnectionString(uri.toString()); } } diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtils.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtils.java index 72342cd5..dd8c8ee8 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtils.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtils.java @@ -1,13 +1,13 @@ package uk.ac.ebi.eva.commons.mongodb.utils; -import com.mongodb.MongoClientURI; +import com.mongodb.ConnectionString; import com.mongodb.ReadPreference; import java.io.UnsupportedEncodingException; import java.util.Objects; public class MongoUtils { - public static MongoClientURI constructMongoClientURI(String host, Integer port, String databaseName, String userName, + public static ConnectionString constructMongoClientURI(String host, Integer port, String databaseName, String userName, String password, String authenticationDatabase, String authenticationMechanism, String readPreference) throws UnsupportedEncodingException { @@ -20,7 +20,7 @@ public static MongoClientURI constructMongoClientURI(String host, Integer port, .build(); } - public static MongoClientURI constructMongoClientURI(String host, Integer port, String databaseName, String username, + public static ConnectionString constructMongoClientURI(String host, Integer port, String databaseName, String username, String password, String authenticationDatabase) throws UnsupportedEncodingException { return MongoUtils.constructMongoClientURI(host, port, databaseName, username, password, diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriter.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriter.java index 92c291fa..42c13996 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriter.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriter.java @@ -34,6 +34,8 @@ import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantSourceEntryMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantStatisticsMongo; +import org.springframework.batch.item.Chunk; + import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -103,7 +105,7 @@ private void createIndexes() { } @Override - public void doWrite(List variants) { + protected void doWrite(Chunk variants) { List> updates = new ArrayList<>(); for (IVariant variant : variants) { updates.add(new UpdateOneModel<>(generateQuery(variant), generateUpdate(variant), diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriter.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriter.java index bb7db4cc..c1f2c9dc 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriter.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriter.java @@ -22,6 +22,8 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.util.Assert; +import org.springframework.batch.item.Chunk; + import uk.ac.ebi.eva.commons.core.models.IVariantSource; import uk.ac.ebi.eva.commons.mongodb.entities.VariantSourceMongo; @@ -61,10 +63,10 @@ private void createIndexes() { } @Override - public void write(List items) throws Exception { - List convertedList = items.stream() + public void write(Chunk items) throws Exception { + List convertedList = items.getItems().stream() .map(VariantSourceMongo::new) .collect(Collectors.toList()); - super.write(convertedList); + super.write(new Chunk<>(convertedList)); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/MongoVariantConversionTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/MongoVariantConversionTest.java index 65c3c9f7..4907e74f 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/MongoVariantConversionTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/MongoVariantConversionTest.java @@ -15,21 +15,18 @@ */ package uk.ac.ebi.eva.commons.mongodb; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; import org.bson.BsonArray; import org.bson.BsonString; import org.bson.Document; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.pipeline.VariantSourceEntry; import uk.ac.ebi.eva.commons.core.models.ws.VariantSourceEntryWithSampleNames; import uk.ac.ebi.eva.commons.core.models.ws.VariantWithSamplesAndAnnotation; @@ -38,7 +35,6 @@ import uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.HgvsMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantSourceEntryMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; import java.util.ArrayList; import java.util.Arrays; @@ -48,10 +44,10 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource({"classpath:eva.properties"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class MongoVariantConversionTest { @@ -76,10 +72,6 @@ public class MongoVariantConversionTest { @Autowired private ApplicationContext applicationContext; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Test public void testConvertVariantWithFiles() { VariantMongo variant = new VariantMongo(buildVariantWithFiles()); @@ -88,15 +80,15 @@ public void testConvertVariantWithFiles() { testBasicMongoVariant(document); List variantSources = (List) document.get(VariantMongo.FILES_FIELD); - Assert.assertNotNull(variantSources); - Assert.assertEquals(1, variantSources.size()); + Assertions.assertNotNull(variantSources); + Assertions.assertEquals(1, variantSources.size()); Document variantSource = (Document) variantSources.get(0); - Assert.assertNotNull(variantSource); - Assert.assertEquals(FILE_ID, variantSource.get(VariantSourceEntryMongo.FILEID_FIELD)); - Assert.assertEquals(STUDY_ID, variantSource.get(VariantSourceEntryMongo.STUDYID_FIELD)); - Assert.assertEquals(FORMAT, variantSource.get(VariantSourceEntryMongo.FORMAT_FIELD)); - Assert.assertEquals(2, ((Document) variantSource.get(VariantSourceEntryMongo.ATTRIBUTES_FIELD)).size()); - Assert.assertEquals(2, ((Document) variantSource.get(VariantSourceEntryMongo.SAMPLES_FIELD)).size()); + Assertions.assertNotNull(variantSource); + Assertions.assertEquals(FILE_ID, variantSource.get(VariantSourceEntryMongo.FILEID_FIELD)); + Assertions.assertEquals(STUDY_ID, variantSource.get(VariantSourceEntryMongo.STUDYID_FIELD)); + Assertions.assertEquals(FORMAT, variantSource.get(VariantSourceEntryMongo.FORMAT_FIELD)); + Assertions.assertEquals(2, ((Document) variantSource.get(VariantSourceEntryMongo.ATTRIBUTES_FIELD)).size()); + Assertions.assertEquals(2, ((Document) variantSource.get(VariantSourceEntryMongo.SAMPLES_FIELD)).size()); } private VariantWithSamplesAndAnnotation buildVariantWithFiles() { @@ -129,31 +121,31 @@ private VariantSourceEntryWithSampleNames buildVariantSourceEntryWithSamples() { } private void testBasicMongoVariant(Document document) { - Assert.assertEquals(CHROMOSOME, document.get(VariantMongo.CHROMOSOME_FIELD)); - Assert.assertEquals(START, document.get(VariantMongo.START_FIELD)); - Assert.assertEquals(END, document.get(VariantMongo.END_FIELD)); - Assert.assertEquals(REFERENCE, document.get(VariantMongo.REFERENCE_FIELD)); - Assert.assertEquals(ALTERNATE, document.get(VariantMongo.ALTERNATE_FIELD)); - Assert.assertTrue(((List) document.get(VariantMongo.IDS_FIELD)).contains(RS_666)); + Assertions.assertEquals(CHROMOSOME, document.get(VariantMongo.CHROMOSOME_FIELD)); + Assertions.assertEquals(START, document.get(VariantMongo.START_FIELD)); + Assertions.assertEquals(END, document.get(VariantMongo.END_FIELD)); + Assertions.assertEquals(REFERENCE, document.get(VariantMongo.REFERENCE_FIELD)); + Assertions.assertEquals(ALTERNATE, document.get(VariantMongo.ALTERNATE_FIELD)); + Assertions.assertTrue(((List) document.get(VariantMongo.IDS_FIELD)).contains(RS_666)); } @Test public void testInverseConvertVariantWithFiles() { Document mongoVariant = buildMongoVariantWithFiles(); VariantMongo variant = mongoOperations.getConverter().read(VariantMongo.class, mongoVariant); - Assert.assertEquals(VARIANT_ID, variant.getId()); - Assert.assertEquals(CHROMOSOME, variant.getChromosome()); - Assert.assertEquals(START, variant.getStart()); - Assert.assertEquals(END, variant.getEnd()); - Assert.assertEquals(REFERENCE, variant.getReference()); - Assert.assertEquals(ALTERNATE, variant.getAlternate()); - Assert.assertTrue(variant.getIds().contains(RS_666)); - Assert.assertNotNull(variant.getSourceEntries()); - Assert.assertFalse(variant.getSourceEntries().isEmpty()); + Assertions.assertEquals(VARIANT_ID, variant.getId()); + Assertions.assertEquals(CHROMOSOME, variant.getChromosome()); + Assertions.assertEquals(START, variant.getStart()); + Assertions.assertEquals(END, variant.getEnd()); + Assertions.assertEquals(REFERENCE, variant.getReference()); + Assertions.assertEquals(ALTERNATE, variant.getAlternate()); + Assertions.assertTrue(variant.getIds().contains(RS_666)); + Assertions.assertNotNull(variant.getSourceEntries()); + Assertions.assertFalse(variant.getSourceEntries().isEmpty()); VariantSourceEntryMongo sourceEntry = variant.getSourceEntries().iterator().next(); - Assert.assertNotNull(sourceEntry.getAttributes()); - Assert.assertEquals(2, sourceEntry.getAttributes().keySet().size()); - Assert.assertEquals(2, sourceEntry.getSamples().size()); + Assertions.assertNotNull(sourceEntry.getAttributes()); + Assertions.assertEquals(2, sourceEntry.getAttributes().keySet().size()); + Assertions.assertEquals(2, sourceEntry.getSamples().size()); } private Document buildMongoVariantWithFiles() { @@ -211,15 +203,15 @@ public void testConvertVariantWithoutFiles() { public void testInverseConvertVariantWithoutFiles() { Document mongoVariant = buildMongoBasicVariant(); VariantMongo variant = mongoOperations.getConverter().read(VariantMongo.class, mongoVariant); - Assert.assertEquals(VARIANT_ID, variant.getId()); - Assert.assertEquals(CHROMOSOME, variant.getChromosome()); - Assert.assertEquals(START, variant.getStart()); - Assert.assertEquals(END, variant.getEnd()); - Assert.assertEquals(REFERENCE, variant.getReference()); - Assert.assertEquals(ALTERNATE, variant.getAlternate()); - Assert.assertTrue(variant.getIds().contains(RS_666)); - Assert.assertNotNull(variant.getSourceEntries()); - Assert.assertTrue(variant.getSourceEntries().isEmpty()); + Assertions.assertEquals(VARIANT_ID, variant.getId()); + Assertions.assertEquals(CHROMOSOME, variant.getChromosome()); + Assertions.assertEquals(START, variant.getStart()); + Assertions.assertEquals(END, variant.getEnd()); + Assertions.assertEquals(REFERENCE, variant.getReference()); + Assertions.assertEquals(ALTERNATE, variant.getAlternate()); + Assertions.assertTrue(variant.getIds().contains(RS_666)); + Assertions.assertNotNull(variant.getSourceEntries()); + Assertions.assertTrue(variant.getSourceEntries().isEmpty()); } /** @@ -252,8 +244,8 @@ public void testConvertToDataModelTypeEmptyIds() { public void testChangeRefAltToUpperCase() { VariantMongo variantMongo = new VariantMongo(new VariantWithSamplesAndAnnotation("chr1", START, END, "a", "t", null)); - Assert.assertEquals("A", variantMongo.getReference()); - Assert.assertEquals("T", variantMongo.getAlternate()); + Assertions.assertEquals("A", variantMongo.getReference()); + Assertions.assertEquals("T", variantMongo.getAlternate()); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/SimplifiedVariantTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/SimplifiedVariantTest.java index 18721490..3b1f5389 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/SimplifiedVariantTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/SimplifiedVariantTest.java @@ -1,11 +1,11 @@ package uk.ac.ebi.eva.commons.mongodb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.ac.ebi.eva.commons.mongodb.entities.projections.SimplifiedVariant; import java.lang.reflect.Field; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class SimplifiedVariantTest { diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantSourceEntryConversionTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantSourceEntryConversionTest.java index 2a277a59..832c189e 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantSourceEntryConversionTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantSourceEntryConversionTest.java @@ -15,27 +15,22 @@ */ package uk.ac.ebi.eva.commons.mongodb; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; - import org.bson.Document; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.pipeline.VariantSourceEntry; import uk.ac.ebi.eva.commons.core.models.ws.VariantSourceEntryWithSampleNames; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantSourceEntryMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; import java.util.ArrayList; import java.util.Arrays; @@ -49,7 +44,7 @@ import static uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantSourceEntryMongo.SAMPLES_FIELD; import static uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantSourceEntryMongo.STUDYID_FIELD; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource({"classpath:eva.properties"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantSourceEntryConversionTest { @@ -66,19 +61,15 @@ public class VariantSourceEntryConversionTest { @Autowired private ApplicationContext applicationContext; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Test public void testConvertVariantSourceEntryWithoutStatsToMongo() { VariantSourceEntryMongo variantSourceEntryMongo = new VariantSourceEntryMongo(createVariantSourceEntry()); Document converted = (Document) mongoOperations.getConverter().convertToMongoType(variantSourceEntryMongo); - Assert.assertEquals(FILE_ID, converted.get(FILEID_FIELD)); - Assert.assertEquals(STUDY_ID, converted.get(STUDYID_FIELD)); - Assert.assertEquals(FORMAT, converted.get(FORMAT_FIELD)); - Assert.assertEquals(3, ((Document) converted.get(ATTRIBUTES_FIELD)).size()); - Assert.assertEquals(3, ((Document) converted.get(SAMPLES_FIELD)).size()); + Assertions.assertEquals(FILE_ID, converted.get(FILEID_FIELD)); + Assertions.assertEquals(STUDY_ID, converted.get(STUDYID_FIELD)); + Assertions.assertEquals(FORMAT, converted.get(FORMAT_FIELD)); + Assertions.assertEquals(3, ((Document) converted.get(ATTRIBUTES_FIELD)).size()); + Assertions.assertEquals(3, ((Document) converted.get(SAMPLES_FIELD)).size()); } private VariantSourceEntry createVariantSourceEntry() { @@ -107,11 +98,11 @@ public void testConvertMongoVariantSourceEntry() { createMongoVariantSourceEntry()); // We cannot check equality because it has a map String object that can contain arrays. This defaults to // reference comparison in that case instead of checking same elements in both sides. - Assert.assertEquals(FILE_ID, variantSource.getFileId()); - Assert.assertEquals(STUDY_ID, variantSource.getStudyId()); - Assert.assertEquals(FORMAT, variantSource.getFormat()); - Assert.assertEquals(3, variantSource.getAttributes().size()); - Assert.assertEquals(3, variantSource.getSamples().size()); + Assertions.assertEquals(FILE_ID, variantSource.getFileId()); + Assertions.assertEquals(STUDY_ID, variantSource.getStudyId()); + Assertions.assertEquals(FORMAT, variantSource.getFormat()); + Assertions.assertEquals(3, variantSource.getAttributes().size()); + Assertions.assertEquals(3, variantSource.getSamples().size()); } private Document createMongoVariantSourceEntry() { @@ -148,29 +139,29 @@ public void testConvertFromVariantSourceEntryMongoToVariantSourceEntry() { = new VariantSourceEntry(variantSourceEntryMongo.getFileId(), variantSourceEntryMongo.getStudyId(), variantSourceEntryMongo.getSecondaryAlternates(), variantSourceEntryMongo.getFormat(), null, variantSourceEntryMongo.getAttributes(), variantSourceEntryMongo.deflateSamplesData(sampleNames.size())); - Assert.assertEquals(FILE_ID, variantSourceEntry.getFileId()); - Assert.assertEquals(STUDY_ID, variantSourceEntry.getStudyId()); - Assert.assertEquals(FORMAT, variantSourceEntry.getFormat()); - Assert.assertEquals(3, variantSourceEntry.getAttributes().size()); - Assert.assertEquals(3, variantSourceEntry.getSamplesData().size()); + Assertions.assertEquals(FILE_ID, variantSourceEntry.getFileId()); + Assertions.assertEquals(STUDY_ID, variantSourceEntry.getStudyId()); + Assertions.assertEquals(FORMAT, variantSourceEntry.getFormat()); + Assertions.assertEquals(3, variantSourceEntry.getAttributes().size()); + Assertions.assertEquals(3, variantSourceEntry.getSamplesData().size()); VariantSourceEntryWithSampleNames variantSourceEntryWithSampleNames = new VariantSourceEntryWithSampleNames( variantSourceEntry, sampleNames); - Assert.assertEquals(FILE_ID, variantSourceEntryWithSampleNames.getFileId()); - Assert.assertEquals(STUDY_ID, variantSourceEntryWithSampleNames.getStudyId()); - Assert.assertEquals(FORMAT, variantSourceEntryWithSampleNames.getFormat()); - Assert.assertEquals(3, variantSourceEntryWithSampleNames.getAttributes().size()); - Assert.assertEquals(3, variantSourceEntryWithSampleNames.getSamplesDataMap().size()); - Assert.assertEquals("0/0", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA001").get("GT")); - Assert.assertEquals("0/1", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA002").get("GT")); - Assert.assertEquals("1/1", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA003").get("GT")); + Assertions.assertEquals(FILE_ID, variantSourceEntryWithSampleNames.getFileId()); + Assertions.assertEquals(STUDY_ID, variantSourceEntryWithSampleNames.getStudyId()); + Assertions.assertEquals(FORMAT, variantSourceEntryWithSampleNames.getFormat()); + Assertions.assertEquals(3, variantSourceEntryWithSampleNames.getAttributes().size()); + Assertions.assertEquals(3, variantSourceEntryWithSampleNames.getSamplesDataMap().size()); + Assertions.assertEquals("0/0", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA001").get("GT")); + Assertions.assertEquals("0/1", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA002").get("GT")); + Assertions.assertEquals("1/1", variantSourceEntryWithSampleNames.getSamplesDataMap().get("NA003").get("GT")); } @Test public void testChangeRefAltToUpperCaseVariantSourceEntry() { VariantSourceEntry variantSourceEntry = new VariantSourceEntry(null, "", new String[]{"a"}, null, null, null, null); - Assert.assertEquals("A", variantSourceEntry.getSecondaryAlternates()[0]); + Assertions.assertEquals("A", variantSourceEntry.getSecondaryAlternates()[0]); } @@ -178,7 +169,7 @@ public void testChangeRefAltToUpperCaseVariantSourceEntry() { public void testChangeRefAltToUpperCaseVariantEntrySourceMongo() { VariantSourceEntryMongo variantSourceEntryMongo = new VariantSourceEntryMongo(new VariantSourceEntry(null, "", new String[]{"a"}, null, null, null, null)); - Assert.assertEquals( "A", variantSourceEntryMongo.getSecondaryAlternates()[0]); + Assertions.assertEquals( "A", variantSourceEntryMongo.getSecondaryAlternates()[0]); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantStatsConversionTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantStatsConversionTest.java index 6d2d67d8..c1b328c2 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantStatsConversionTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/VariantStatsConversionTest.java @@ -15,20 +15,16 @@ */ package uk.ac.ebi.eva.commons.mongodb; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; - import org.bson.Document; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.VariantStatistics; import uk.ac.ebi.eva.commons.core.models.VariantType; @@ -36,9 +32,8 @@ import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantStatisticsMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource({"classpath:eva.properties"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantStatsConversionTest { @@ -62,10 +57,6 @@ public class VariantStatsConversionTest { @Autowired private ApplicationContext applicationContext; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Test public void testConvertVariantStatsToMongo() { VariantStatistics stats = new VariantStatistics( @@ -90,16 +81,16 @@ public void testConvertVariantStatsToMongo() { VariantStatisticsMongo variantStatsMongo = new VariantStatisticsMongo(STUDY_ID, FILE_ID, COHORT_ID, stats); Document converted = (Document) mongoOperations.getConverter().convertToMongoType(variantStatsMongo); - Assert.assertEquals(STUDY_ID, converted.get(VariantStatisticsMongo.STUDY_ID)); - Assert.assertEquals(FILE_ID, converted.get(VariantStatisticsMongo.FILE_ID)); - Assert.assertEquals(COHORT_ID, converted.get(VariantStatisticsMongo.COHORT_ID)); - Assert.assertEquals(MGF, converted.get(VariantStatisticsMongo.MGF_FIELD)); - Assert.assertEquals(MAF_ALLELE, converted.get(VariantStatisticsMongo.MAFALLELE_FIELD)); - Assert.assertEquals(MGF_GENOTYPE, converted.get(VariantStatisticsMongo.MGFGENOTYPE_FIELD)); - Assert.assertEquals(MISSING_ALLELES, converted.get(VariantStatisticsMongo.MISSALLELE_FIELD)); - Assert.assertEquals(MISSING_GENOTYPES, converted.get(VariantStatisticsMongo.MISSGENOTYPE_FIELD)); - Assert.assertNotNull(converted.get(VariantStatisticsMongo.NUMGT_FIELD)); - Assert.assertEquals(3, ((Document) converted.get(VariantStatisticsMongo.NUMGT_FIELD)).size()); + Assertions.assertEquals(STUDY_ID, converted.get(VariantStatisticsMongo.STUDY_ID)); + Assertions.assertEquals(FILE_ID, converted.get(VariantStatisticsMongo.FILE_ID)); + Assertions.assertEquals(COHORT_ID, converted.get(VariantStatisticsMongo.COHORT_ID)); + Assertions.assertEquals(MGF, converted.get(VariantStatisticsMongo.MGF_FIELD)); + Assertions.assertEquals(MAF_ALLELE, converted.get(VariantStatisticsMongo.MAFALLELE_FIELD)); + Assertions.assertEquals(MGF_GENOTYPE, converted.get(VariantStatisticsMongo.MGFGENOTYPE_FIELD)); + Assertions.assertEquals(MISSING_ALLELES, converted.get(VariantStatisticsMongo.MISSALLELE_FIELD)); + Assertions.assertEquals(MISSING_GENOTYPES, converted.get(VariantStatisticsMongo.MISSGENOTYPE_FIELD)); + Assertions.assertNotNull(converted.get(VariantStatisticsMongo.NUMGT_FIELD)); + Assertions.assertEquals(3, ((Document) converted.get(VariantStatisticsMongo.NUMGT_FIELD)).size()); } @@ -123,16 +114,16 @@ public void testConvertMongoToVariantStats() { VariantStatisticsMongo converted = mongoOperations.getConverter().read(VariantStatisticsMongo.class, mongoStats); - Assert.assertEquals(STUDY_ID, converted.getStudyId()); - Assert.assertEquals(FILE_ID, converted.getFileId()); - Assert.assertEquals(COHORT_ID, converted.getCohortId()); - Assert.assertEquals(MGF, converted.getMgf(), 0.0f); - Assert.assertEquals(MAF_ALLELE, converted.getMafAllele()); - Assert.assertEquals(MGF_GENOTYPE, converted.getMgfGenotype()); - Assert.assertEquals(MISSING_ALLELES, converted.getMissingAlleles()); - Assert.assertEquals(MISSING_GENOTYPES, converted.getMissingGenotypes()); - Assert.assertNotNull(converted.getGenotypesCount()); - Assert.assertEquals(3, converted.getGenotypesCount().size()); + Assertions.assertEquals(STUDY_ID, converted.getStudyId()); + Assertions.assertEquals(FILE_ID, converted.getFileId()); + Assertions.assertEquals(COHORT_ID, converted.getCohortId()); + Assertions.assertEquals(MGF, converted.getMgf(), 0.0f); + Assertions.assertEquals(MAF_ALLELE, converted.getMafAllele()); + Assertions.assertEquals(MGF_GENOTYPE, converted.getMgfGenotype()); + Assertions.assertEquals(MISSING_ALLELES, converted.getMissingAlleles()); + Assertions.assertEquals(MISSING_GENOTYPES, converted.getMissingGenotypes()); + Assertions.assertNotNull(converted.getGenotypesCount()); + Assertions.assertEquals(3, converted.getGenotypesCount().size()); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/configuration/MongoRepositoryTestConfiguration.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/configuration/MongoRepositoryTestConfiguration.java index db8418bc..f9696edb 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/configuration/MongoRepositoryTestConfiguration.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/configuration/MongoRepositoryTestConfiguration.java @@ -21,11 +21,16 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.EnableMongoAuditing; +import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.util.Assert; +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.utility.DockerImageName; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; @Configuration @EntityScan(basePackages = {"uk.ac.ebi.eva.commons.mongodb.entities"}) @@ -34,43 +39,56 @@ @AutoConfigureDataMongo public class MongoRepositoryTestConfiguration { + @Bean + @ServiceConnection + public MongoDBContainer mongoDBContainer() { + MongoDBContainer container = new MongoDBContainer(DockerImageName.parse("mongo:6.0")); + container.start(); + return container; + } + + @Bean + public TestDataLoader testDataLoader(MongoTemplate mongoTemplate) { + return new TestDataLoader(mongoTemplate); + } + @Bean public String mongoCollectionsAnnotationMetadata( @Value("${eva.mongo.collections.annotation-metadata:#{null}}") String collectionAnnotationMetadata) { - Assert.notNull(collectionAnnotationMetadata); + Assert.notNull(collectionAnnotationMetadata, "collectionAnnotationMetadata must not be null"); return collectionAnnotationMetadata; } @Bean public String mongoCollectionsAnnotations( @Value("${eva.mongo.collections.annotations:#{null}}") String collectionAnnotations) { - Assert.notNull(collectionAnnotations); + Assert.notNull(collectionAnnotations, "collectionAnnotations must not be null"); return collectionAnnotations; } @Bean public String mongoCollectionsFeatures( @Value("${eva.mongo.collections.features:#{null}}") String collectionFeatures) { - Assert.notNull(collectionFeatures); + Assert.notNull(collectionFeatures, "collectionFeatures must not be null"); return collectionFeatures; } @Bean public String mongoCollectionsVariants( @Value("${eva.mongo.collections.variants:#{null}}") String collectionVariants) { - Assert.notNull(collectionVariants); + Assert.notNull(collectionVariants, "collectionVariants must not be null"); return collectionVariants; } @Bean public String mongoCollectionsFiles(@Value("${eva.mongo.collections.files:#{null}}") String collectionFiles) { - Assert.notNull(collectionFiles); + Assert.notNull(collectionFiles, "collectionFiles must not be null"); return collectionFiles; } @Bean public String mongoCollectionsSamples(@Value("${eva.mongo.collections.samples:#{null}}") String collectionSamples) { - Assert.notNull(collectionSamples); + Assert.notNull(collectionSamples, "collectionSamples must not be null"); return collectionSamples; } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryDoubleFilterTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryDoubleFilterTest.java index 987ccf98..86eaff1b 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryDoubleFilterTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryDoubleFilterTest.java @@ -18,9 +18,9 @@ */ package uk.ac.ebi.eva.commons.mongodb.filter; -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 VariantRepositoryDoubleFilterTest { diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryFilterTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryFilterTest.java index 6c0bb6e1..f89ff77b 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryFilterTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/filter/VariantRepositoryFilterTest.java @@ -19,13 +19,13 @@ package uk.ac.ebi.eva.commons.mongodb.filter; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.query.Criteria; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class VariantRepositoryFilterTest { @Test diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReaderTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReaderTest.java index 4d4d8468..c89de011 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReaderTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/readers/MongoDbCursorItemReaderTest.java @@ -16,13 +16,10 @@ package uk.ac.ebi.eva.commons.mongodb.readers; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -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.junit.jupiter.api.extension.ExtendWith; import org.springframework.batch.item.ExecutionContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -30,21 +27,20 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.VariantType; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.data.mongodb.core.query.Criteria.where; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource({"classpath:eva.properties"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class MongoDbCursorItemReaderTest { @@ -60,13 +56,9 @@ public class MongoDbCursorItemReaderTest { @Autowired private ApplicationContext applicationContext; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - private MongoDbCursorItemReader reader; - @Before + @BeforeEach public void setUp() { reader = new MongoDbCursorItemReader<>(); reader.setMongoTemplate(mongoTemplate); @@ -77,7 +69,7 @@ public void setUp() { mongoTemplate.insert(new VariantMongo(VariantType.DEL, "chr1", 2L, 2L, 1, "T", "")); } - @After + @AfterEach public void tearDown() { mongoTemplate.getDb().drop(); reader.close(); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMetadataRepositoryTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMetadataRepositoryTest.java index f3914874..56b21996 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMetadataRepositoryTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMetadataRepositoryTest.java @@ -1,45 +1,45 @@ package uk.ac.ebi.eva.commons.mongodb.repositories; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.AnnotationMetadataMongo; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; 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) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = {"/test-data/annotation_metadata.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class AnnotationMetadataRepositoryTest { - private static final String TEST_DB = "test-db"; + @Autowired + private AnnotationMetadataRepository repository; @Autowired - private ApplicationContext applicationContext; + private TestDataLoader testDataLoader; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/annotation_metadata.json"); + } - @Autowired - private AnnotationMetadataRepository repository; + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void findOneByDefault() throws Exception { @@ -59,4 +59,4 @@ public void testFindByCacheVersionVepVersionNotExists() { assertEquals(0, repository.findByCacheVersionAndVepVersion("76", "76").size()); } -} \ No newline at end of file +} diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMongoRepositoryTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMongoRepositoryTest.java index 217b693b..6825462e 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMongoRepositoryTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/AnnotationMongoRepositoryTest.java @@ -15,58 +15,59 @@ */ package uk.ac.ebi.eva.commons.mongodb.repositories; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.AnnotationMongo; import uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -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.assertTrue; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = { - "/test-data/variants.json", - "/test-data/annotations.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class AnnotationMongoRepositoryTest { - private static final String TEST_DB = "test-db"; - - @Autowired - private ApplicationContext applicationContext; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Autowired private AnnotationRepository repository; @Autowired private VariantRepository variantRepository; + @Autowired + private TestDataLoader testDataLoader; + + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load( + "/test-data/variants.json", + "/test-data/annotations.json" + ); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } + @Test public void testFindOne() { AnnotationMongo annotation = repository.findOne("9", 10099, "A", "T", "78", "78"); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryTest.java index 9a82e041..7548d6de 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantRepositoryTest.java @@ -18,20 +18,16 @@ */ package uk.ac.ebi.eva.commons.mongodb.repositories; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.Region; import uk.ac.ebi.eva.commons.core.models.VariantType; @@ -41,7 +37,7 @@ import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.filter.FilterBuilder; import uk.ac.ebi.eva.commons.mongodb.filter.VariantRepositoryFilter; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; import java.io.IOException; import java.util.ArrayList; @@ -51,36 +47,38 @@ import java.util.List; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -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.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Tests for VariantRepository - *

- * Load data from json using lordofthejars nosqlunit. */ -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = { - "/test-data/variants.json", - "/test-data/annotations.json", - "/test-data/files.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantRepositoryTest { - private static final String TEST_DB = "test-db"; - @Autowired - private ApplicationContext applicationContext; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + private VariantRepository variantRepository; @Autowired - private VariantRepository variantRepository; + private TestDataLoader testDataLoader; + + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load( + "/test-data/variants.json", + "/test-data/annotations.json", + "/test-data/files.json" + ); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void checkFieldPresence() throws IOException { @@ -93,7 +91,7 @@ public void checkFieldPresence() throws IOException { List variantEntityList = variantRepository .findByRegionsAndComplexFilters(regions, filters, exclude, - new PageRequest(0, 100000000)); + PageRequest.of(0, 100000000)); for (VariantMongo currVariantEntity : variantEntityList) { assertFalse(currVariantEntity.getSourceEntries().isEmpty()); @@ -206,7 +204,7 @@ public void testVariantRegionIsFound() { List regions = new ArrayList<>(); regions.add(region); List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 1000000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 1000000)); assertNotNull(variantEntityList); assertTrue(variantEntityList.size() > 0); assertEquals(chr, variantEntityList.get(0).getChromosome()); @@ -222,7 +220,7 @@ public void testVariantRegionIsFoundMultiple() { List regions = new ArrayList<>(); regions.add(region); List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 1000000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 1000000)); assertNotNull(variantEntityList); assertTrue(variantEntityList.size() > 0); assertEquals(478, variantEntityList.size()); @@ -250,7 +248,7 @@ public void testNonExistentVariantRegionIsNotFound() { List regions = new ArrayList<>(); regions.add(region); List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 1000000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 1000000)); assertNotNull(variantEntityList); assertTrue(variantEntityList.size() == 0); } @@ -402,7 +400,7 @@ public void testFindByRegionsAndComplexFiltersExcludeSingleRoot() { List filters = new ArrayList<>(); List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 10000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 10000)); assertNotNull(variantEntityList); for (VariantMongo currVariantEntity : variantEntityList) { assertTrue(currVariantEntity.getSourceEntries().isEmpty()); @@ -420,7 +418,7 @@ public void testFindByRegionsAndComplexFiltersExcludeAttributes() { List filters = new ArrayList<>(); List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 10000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 10000)); assertNotNull(variantEntityList); for (VariantMongo currVariantEntity : variantEntityList) { @@ -468,15 +466,15 @@ public void testSamplesDataIsNotEmpty() { regions.add(region); List variantEntityList = variantRepository. - findByRegionsAndComplexFilters(regions, null, null, new PageRequest(0, 10000)); + findByRegionsAndComplexFilters(regions, null, null, PageRequest.of(0, 10000)); assertEquals(1, variantEntityList.size()); } @Test public void testFindByChromosomeAndStudyInSortedBy() { - Sort ascendingStartOrder = new Sort(Sort.Direction.ASC, "start"); - Sort descendingStartOrder = new Sort(Sort.Direction.DESC, "start"); + Sort ascendingStartOrder = Sort.by(Sort.Direction.ASC, "start"); + Sort descendingStartOrder = Sort.by(Sort.Direction.DESC, "start"); // first and last variant for one study VariantMongo firstVariant = @@ -515,7 +513,7 @@ private void testFiltersHelperRegion(List regions, List exclude, int expectedResultLength) { List variantEntityList = variantRepository.findByRegionsAndComplexFilters(regions, filters, exclude, - new PageRequest(0, 10000)); + PageRequest.of(0, 10000)); assertNotNull(variantEntityList); assertEquals(expectedResultLength, variantEntityList.size()); } @@ -523,7 +521,7 @@ private void testFiltersHelperRegion(List regions, List regions, List filters, List exclude, int expectedResultLength) { List variantEntityList = variantRepository - .findByRegionsAndComplexFilters(regions, filters, exclude, new PageRequest(0, 100000000)); + .findByRegionsAndComplexFilters(regions, filters, exclude, PageRequest.of(0, 100000000)); assertNotNull(variantEntityList); assertTrue(variantEntityList.size() > 0); VariantMongo prevVariantEntity = variantEntityList.get(0); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantSourceRepositoryTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantSourceRepositoryTest.java index 910656e8..b5919aa7 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantSourceRepositoryTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/VariantSourceRepositoryTest.java @@ -15,39 +15,35 @@ */ package uk.ac.ebi.eva.commons.mongodb.repositories; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.IVariantGlobalStats; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.VariantSourceMongo; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = {"/test-data/files.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantSourceRepositoryTest { @@ -59,17 +55,21 @@ public class VariantSourceRepositoryTest { private static final String FIRST_FILE_ID = "firstFileId"; private static final String SECOND_FILE_ID = "secondFileId"; - private static final String TEST_DB = "test-db"; - @Autowired - private ApplicationContext applicationContext; + private VariantSourceRepository repository; @Autowired - private VariantSourceRepository repository; + private TestDataLoader testDataLoader; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/files.json"); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void testFindAll() { @@ -96,21 +96,21 @@ public void testFindByStudyId() { List studyIds = new ArrayList<>(); studyIds.add(SECOND_STUDY_ID); - Pageable pageable = new PageRequest(0, 1); + Pageable pageable = PageRequest.of(0, 1); List variantSourceMongoList = repository.findByStudyIdIn(studyIds, pageable); assertEquals(1, variantSourceMongoList.size()); - pageable = new PageRequest(0, 2); + pageable = PageRequest.of(0, 2); variantSourceMongoList = repository.findByStudyIdIn(studyIds, pageable); assertEquals(2, variantSourceMongoList.size()); studyIds.add(FIRST_STUDY_ID); - pageable = new PageRequest(1, 2); + pageable = PageRequest.of(1, 2); variantSourceMongoList = repository.findByStudyIdIn(studyIds, pageable); assertEquals(1, variantSourceMongoList.size()); - pageable = new PageRequest(2, 2); + pageable = PageRequest.of(2, 2); variantSourceMongoList = repository.findByStudyIdIn(studyIds, pageable); assertEquals(0, variantSourceMongoList.size()); } @@ -134,7 +134,7 @@ public void testFindByFileIdIn() { List fileIds = new ArrayList<>(); fileIds.add(FIRST_FILE_ID); - Pageable pageable = new PageRequest(0, 100); + Pageable pageable = PageRequest.of(0, 100); List variantSourceMongoList = repository.findByFileIdIn(fileIds, pageable); assertEquals(1, variantSourceMongoList.size()); @@ -149,7 +149,7 @@ public void testStatsNotZero() { List fileIds = new ArrayList<>(); fileIds.add(FIRST_FILE_ID); - Pageable pageable = new PageRequest(0, 100); + Pageable pageable = PageRequest.of(0, 100); List variantSourceMongoList = repository.findByFileIdIn(fileIds, pageable); assertEquals(1, variantSourceMongoList.size()); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/AnnotationMetadataServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/AnnotationMetadataServiceTest.java index f5ba3159..1d6da65b 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/AnnotationMetadataServiceTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/AnnotationMetadataServiceTest.java @@ -15,46 +15,46 @@ */ package uk.ac.ebi.eva.commons.mongodb.services; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.AnnotationMetadata; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; 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) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = {"/test-data/annotation_metadata.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class AnnotationMetadataServiceTest { - private static final String TEST_DB = "test-db"; - @Autowired - private ApplicationContext applicationContext; + private AnnotationMetadataService service; @Autowired - private AnnotationMetadataService service; + private TestDataLoader testDataLoader; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/annotation_metadata.json"); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void testFindAllByOrderByCacheVersionDescVepVersionDescSize() throws Exception { diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/FeatureServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/FeatureServiceTest.java index 3c784da7..dc2ace98 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/FeatureServiceTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/FeatureServiceTest.java @@ -18,47 +18,36 @@ */ package uk.ac.ebi.eva.commons.mongodb.services; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.FeatureCoordinates; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; 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) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = { - "/test-data/features.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class FeatureServiceTest { - private static final String TEST_DB = "test-db"; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Autowired - private ApplicationContext applicationContext; + private FeatureService featureService; @Autowired - private FeatureService featureService; + private TestDataLoader testDataLoader; private String GENE_ID_EXISTING1 = "ENSG00000223972"; @@ -72,6 +61,16 @@ public class FeatureServiceTest { private String GENE_NAME_NON_EXISITNG = "NonExisitngGeneName"; + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/features.json"); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } + @Test public void testGeneIdorGeneName() { List featureCoordinates = findByIdOrNameHelper(GENE_ID_EXISTING1, diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantSourceServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantSourceServiceTest.java index 85676c97..48914ffc 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantSourceServiceTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantSourceServiceTest.java @@ -1,19 +1,15 @@ package uk.ac.ebi.eva.commons.mongodb.services; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.Aggregation; import uk.ac.ebi.eva.commons.core.models.StudyType; @@ -23,21 +19,22 @@ import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.VariantSourceMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantGlobalStatsMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = {"/test-data/files.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantSourceServiceTest { @@ -47,17 +44,21 @@ public class VariantSourceServiceTest { private static final String FIRST_FILE_ID = "firstFileId"; private static final String SECOND_FILE_ID = "secondFileId"; - private static final String TEST_DB = "test-db"; - @Autowired private VariantSourceService service; @Autowired - private ApplicationContext applicationContext; + private TestDataLoader testDataLoader; + + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/files.json"); + } - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void testConvert() { @@ -86,9 +87,11 @@ public void testConvert() { assertEquals(variantSource, variantSources.get(0)); } - @Test(expected = NullPointerException.class) + @Test public void testConvertNull() { - service.convert(null); + assertThrows(NullPointerException.class, () -> { + service.convert(null); + }); } @Test @@ -118,21 +121,21 @@ public void testFindByStudyId() { List studyIds = new ArrayList<>(); studyIds.add(SECOND_STUDY_ID); - Pageable pageable = new PageRequest(0, 1); + Pageable pageable = PageRequest.of(0, 1); List variantSourceMongoList = service.findByStudyIdIn(studyIds, pageable); assertEquals(1, variantSourceMongoList.size()); - pageable = new PageRequest(0, 2); + pageable = PageRequest.of(0, 2); variantSourceMongoList = service.findByStudyIdIn(studyIds, pageable); assertEquals(2, variantSourceMongoList.size()); studyIds.add(FIRST_STUDY_ID); - pageable = new PageRequest(1, 2); + pageable = PageRequest.of(1, 2); variantSourceMongoList = service.findByStudyIdIn(studyIds, pageable); assertEquals(1, variantSourceMongoList.size()); - pageable = new PageRequest(2, 2); + pageable = PageRequest.of(2, 2); variantSourceMongoList = service.findByStudyIdIn(studyIds, pageable); assertEquals(0, variantSourceMongoList.size()); } @@ -156,7 +159,7 @@ public void testFindByFileIdIn() { List fileIds = new ArrayList<>(); fileIds.add(FIRST_FILE_ID); - Pageable pageable = new PageRequest(0, 100); + Pageable pageable = PageRequest.of(0, 100); List variantSourceMongoList = service.findByFileIdIn(fileIds, pageable); assertEquals(1, variantSourceMongoList.size()); @@ -171,7 +174,7 @@ public void testStatsNotZero() { List fileIds = new ArrayList<>(); fileIds.add(FIRST_FILE_ID); - Pageable pageable = new PageRequest(0, 100); + Pageable pageable = PageRequest.of(0, 100); List variantSourceList = service.findByFileIdIn(fileIds, pageable); assertEquals(1, variantSourceList.size()); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantStudySummaryServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantStudySummaryServiceTest.java index 06700e90..93f22806 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantStudySummaryServiceTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantStudySummaryServiceTest.java @@ -16,39 +16,34 @@ package uk.ac.ebi.eva.commons.mongodb.services; - -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.projections.VariantStudySummary; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.List; -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; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = {"/test-data/files.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantStudySummaryServiceTest { @@ -60,8 +55,6 @@ public class VariantStudySummaryServiceTest { private static final String FIRST_STUDY_ID = "firstStudyId"; private static final String SECOND_STUDY_ID = "secondStudyId"; - private static final String TEST_DB = "test-db"; - private static final int EXPECTED_UNIQUE_STUDIES_COUNT = 18; private static final long FIRST_PAGE_NUMBER = 0; @@ -74,14 +67,20 @@ public class VariantStudySummaryServiceTest { private static final int EXPECTED_FILE_COUNT_FROM_SECOND_STUDY_ID = 2; @Autowired - private ApplicationContext applicationContext; + private VariantStudySummaryService service; @Autowired - private VariantStudySummaryService service; + private TestDataLoader testDataLoader; - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load("/test-data/files.json"); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void testFindsByNameOrIdProvidingName() { @@ -145,16 +144,6 @@ public void testListStudiesByFromDate() throws ParseException { } private void assertCorrectCount(int expectedFileCount, VariantStudySummary study) { - int buggedFongoCount = 0; - if (study.getFilesCount() == buggedFongoCount) { - logger.warn("Although the expected files count is different from the actual one ({} != {}) " + - "this is a known limitation of Fongo, in a real mongo it works, " + - "see https://github.com/fakemongo/fongo/issues/258", expectedFileCount, study.getFilesCount()); - } else { - assertEquals(expectedFileCount, study.getFilesCount()); - } - + assertEquals(expectedFileCount, study.getFilesCount()); } } - - diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationServiceTest.java index 94e1e968..edca8dfb 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationServiceTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/VariantWithSamplesAndAnnotationServiceTest.java @@ -15,20 +15,16 @@ */ package uk.ac.ebi.eva.commons.mongodb.services; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -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.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.Region; import uk.ac.ebi.eva.commons.core.models.VariantType; @@ -39,41 +35,46 @@ import uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo; import uk.ac.ebi.eva.commons.mongodb.filter.FilterBuilder; import uk.ac.ebi.eva.commons.mongodb.filter.VariantRepositoryFilter; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; +import uk.ac.ebi.eva.commons.mongodb.test.TestDataLoader; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; -import static junit.framework.TestCase.assertNull; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -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.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = { - "/test-data/variants.json", - "/test-data/annotations.json", - "/test-data/files.json", - "/test-data/annotation_metadata.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantWithSamplesAndAnnotationServiceTest { - private static final String TEST_DB = "test-db"; - @Autowired - private ApplicationContext applicationContext; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); + private VariantWithSamplesAndAnnotationsService service; @Autowired - private VariantWithSamplesAndAnnotationsService service; + private TestDataLoader testDataLoader; + + @BeforeEach + public void setUp() throws IOException { + testDataLoader.load( + "/test-data/variants.json", + "/test-data/annotations.json", + "/test-data/files.json", + "/test-data/annotation_metadata.json" + ); + } + + @AfterEach + public void tearDown() { + testDataLoader.cleanupTestCollections(); + } @Test public void testFindByRegionsAndComplexFilters() throws AnnotationMetadataNotFoundException { @@ -82,7 +83,7 @@ public void testFindByRegionsAndComplexFilters() throws AnnotationMetadataNotFou regions.add(region); List variantEntityList = service.findByRegionsAndComplexFilters( - regions, null, null, null, new PageRequest(0, 10000)); + regions, null, null, null, PageRequest.of(0, 10000)); assertEquals(1, variantEntityList.size()); @@ -126,7 +127,7 @@ public void testfindbyRegionAndOtherBeaconFilters() { Region startRange = new Region("9", 10099L, 10099L); Region endRange = new Region("9", 10099L, 10099L); - Pageable pageable = new PageRequest(0, 1000); + Pageable pageable = PageRequest.of(0, 1000); List filters = new FilterBuilder().getBeaconFilters("A", "T", VariantType.SNV, Collections.singletonList("PRJEB5829")); @@ -160,7 +161,7 @@ public void testfindbyRegionAndOtherBeaconFiltersWithRanges() { Region startRange = new Region("11", 190238L, 190276L); Region endRange = new Region("11", 190238L, 190276L); - Pageable pageable = new PageRequest(0, 1000); + Pageable pageable = PageRequest.of(0, 1000); List filters = new FilterBuilder().getBeaconFilters("A", null, null, null); @@ -184,4 +185,3 @@ public void testfindbyRegionAndOtherBeaconFiltersWithRanges() { pageable).get(0).getId()); } } - diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/TestDataLoader.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/TestDataLoader.java new file mode 100644 index 00000000..17852209 --- /dev/null +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/TestDataLoader.java @@ -0,0 +1,206 @@ +/* + * Copyright 2024 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.eva.commons.mongodb.test; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.bson.BsonBinarySubType; +import org.bson.Document; +import org.bson.types.Binary; +import org.bson.types.ObjectId; +import org.springframework.core.io.ClassPathResource; +import org.springframework.data.mongodb.core.MongoTemplate; + +import java.io.IOException; +import java.io.InputStream; +import java.time.Instant; +import java.time.format.DateTimeParseException; +import java.util.ArrayList; +import java.util.Base64; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * Utility class for loading test data from JSON files into MongoDB collections. + * This replaces the nosqlunit @UsingDataSet annotation functionality. + */ +public class TestDataLoader { + + private final MongoTemplate mongoTemplate; + private final ObjectMapper objectMapper; + + public TestDataLoader(MongoTemplate mongoTemplate) { + this.mongoTemplate = mongoTemplate; + this.objectMapper = new ObjectMapper(); + } + + /** + * Load test data from a JSON file into the appropriate MongoDB collections. + * The JSON file should have collection names as keys and arrays of documents as values. + * + * @param jsonPath the classpath location of the JSON file (e.g., "/test-data/variants.json") + * @throws IOException if the file cannot be read or parsed + */ + public void load(String jsonPath) throws IOException { + ClassPathResource resource = new ClassPathResource(jsonPath.startsWith("/") ? jsonPath.substring(1) : jsonPath); + try (InputStream inputStream = resource.getInputStream()) { + Map>> data = objectMapper.readValue( + inputStream, + new TypeReference>>>() {} + ); + + for (Map.Entry>> entry : data.entrySet()) { + String collectionName = entry.getKey(); + List> documents = entry.getValue(); + + for (Map doc : documents) { + Map convertedDoc = convertExtendedJson(doc); + Document document = new Document(convertedDoc); + mongoTemplate.insert(document, collectionName); + } + } + } + } + + /** + * Recursively convert MongoDB extended JSON format to native BSON types. + * Handles $oid, $date, $numberLong, $numberInt, $numberDouble, $numberDecimal + */ + @SuppressWarnings("unchecked") + private Map convertExtendedJson(Map map) { + Map result = new LinkedHashMap<>(); + + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + + result.put(key, convertValue(value)); + } + + return result; + } + + @SuppressWarnings("unchecked") + private Object convertValue(Object value) { + if (value instanceof Map) { + Map mapValue = (Map) value; + + // Check for extended JSON types + if (mapValue.size() == 2 && mapValue.containsKey("$binary") && mapValue.containsKey("$type")) { + // Handle binary data: {"$binary": "base64data", "$type": "00"} + String base64Data = (String) mapValue.get("$binary"); + String typeStr = (String) mapValue.get("$type"); + byte[] data = Base64.getDecoder().decode(base64Data); + byte subType = (byte) Integer.parseInt(typeStr, 16); + return new Binary(subType, data); + } + if (mapValue.size() == 1) { + if (mapValue.containsKey("$oid")) { + return new ObjectId((String) mapValue.get("$oid")); + } + if (mapValue.containsKey("$date")) { + Object dateValue = mapValue.get("$date"); + if (dateValue instanceof Map) { + Map dateMap = (Map) dateValue; + if (dateMap.containsKey("$numberLong")) { + return new Date(Long.parseLong((String) dateMap.get("$numberLong"))); + } + } else if (dateValue instanceof Long) { + return new Date((Long) dateValue); + } else if (dateValue instanceof String) { + String dateStr = (String) dateValue; + // Try parsing as ISO 8601 date string first + try { + return Date.from(Instant.parse(dateStr)); + } catch (DateTimeParseException e) { + // Fall back to parsing as numeric timestamp + return new Date(Long.parseLong(dateStr)); + } + } + } + if (mapValue.containsKey("$numberLong")) { + return Long.parseLong((String) mapValue.get("$numberLong")); + } + if (mapValue.containsKey("$numberInt")) { + return Integer.parseInt((String) mapValue.get("$numberInt")); + } + if (mapValue.containsKey("$numberDouble")) { + return Double.parseDouble((String) mapValue.get("$numberDouble")); + } + } + + // Not an extended JSON type, recursively convert + return convertExtendedJson(mapValue); + } else if (value instanceof List) { + List listValue = (List) value; + List convertedList = new ArrayList<>(); + for (Object item : listValue) { + convertedList.add(convertValue(item)); + } + return convertedList; + } + + return value; + } + + /** + * Load multiple JSON files. + * + * @param jsonPaths array of classpath locations of JSON files + * @throws IOException if any file cannot be read or parsed + */ + public void load(String... jsonPaths) throws IOException { + for (String path : jsonPaths) { + load(path); + } + } + + /** + * Drop a specific collection. + * + * @param collectionName the name of the collection to drop + */ + public void dropCollection(String collectionName) { + mongoTemplate.dropCollection(collectionName); + } + + /** + * Drop multiple collections. + * + * @param collectionNames the names of collections to drop + */ + public void dropCollections(String... collectionNames) { + for (String name : collectionNames) { + dropCollection(name); + } + } + + /** + * Clean up all known test collections. + */ + public void cleanupTestCollections() { + dropCollections( + "variants_1_2", + "files", + "annotation_metadata", + "annotations", + "features", + "samples" + ); + } +} diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/rule/FixSpringMongoDbRule.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/rule/FixSpringMongoDbRule.java deleted file mode 100644 index 1e93c75e..00000000 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/test/rule/FixSpringMongoDbRule.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2019 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.eva.commons.mongodb.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/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtilsTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtilsTest.java index 96c7c07c..eda02a28 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtilsTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/utils/MongoUtilsTest.java @@ -1,14 +1,10 @@ package uk.ac.ebi.eva.commons.mongodb.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.context.junit4.SpringRunner; +import org.junit.jupiter.api.Test; import java.io.UnsupportedEncodingException; -import static org.junit.Assert.assertEquals; - -@RunWith(SpringRunner.class) +import static org.junit.jupiter.api.Assertions.assertEquals; public class MongoUtilsTest { // All parameters passed @@ -16,7 +12,7 @@ public class MongoUtilsTest { public void testConstructMongoClientURIAllParams() throws UnsupportedEncodingException { String mongoClientURI = MongoUtils.constructMongoClientURI("localhost", 27018, "testDB", "username", "password", "authdb", "SCRAM-SHA-1", "primary") - .getURI(); + .getConnectionString(); assertEquals("mongodb://username:password@localhost:27018/testDB?authSource=authdb" + "&authMechanism=SCRAM-SHA-1&readPreference=primary", mongoClientURI); } @@ -25,7 +21,7 @@ public void testConstructMongoClientURIAllParams() throws UnsupportedEncodingExc @Test public void testConstructMongoClientURINoAuthMechanismAndReadPref() throws UnsupportedEncodingException { String mongoClientURI = MongoUtils.constructMongoClientURI("localhost", 27018, "testDB", "username", - "password", "authdb").getURI(); + "password", "authdb").getConnectionString(); assertEquals("mongodb://username:password@localhost:27018/testDB" + "?authSource=authdb&readPreference=primary", mongoClientURI); } @@ -34,7 +30,7 @@ public void testConstructMongoClientURINoAuthMechanismAndReadPref() throws Unsup @Test public void testMultipleHosts() throws UnsupportedEncodingException { String mongoClientURI = MongoUtils.constructMongoClientURI("host1:27017,host2:27018", 27019, - "", "", "", "").getURI(); + "", "", "", "").getConnectionString(); // Ensure separate port parameter is overridden by the ports provided in the hosts parameter assertEquals("mongodb://host1:27017,host2:27018/?readPreference=primary", mongoClientURI); } @@ -42,20 +38,20 @@ public void testMultipleHosts() throws UnsupportedEncodingException { // No parameters passed results in sane defaults @Test public void testNoParams() throws UnsupportedEncodingException { - String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", "", "", "").getURI(); + String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", "", "", "").getConnectionString(); assertEquals("mongodb://localhost:27017/?readPreference=primary", mongoClientURI); } // Authentication params ignored when no username/password is provided @Test public void testAuthParamsIgnoredWhenNoUserNameAndPassword() throws UnsupportedEncodingException { - String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", "", "", "authdb", "authmech", "").getURI(); + String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", "", "", "authdb", "authmech", "").getConnectionString(); assertEquals("mongodb://localhost:27017/?readPreference=primary", mongoClientURI); } @Test public void testAuthParamsIgnoredWhenNoUserNameAndPasswordIsNull() throws UnsupportedEncodingException { - String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", null, null, "authdb", "authmech", "").getURI(); + String mongoClientURI = MongoUtils.constructMongoClientURI("", null, "", null, null, "authdb", "authmech", "").getConnectionString(); assertEquals("mongodb://localhost:27017/?readPreference=primary", mongoClientURI); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/SampleMongoWriterTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/SampleMongoWriterTest.java index 8a2865a3..248da8e0 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/SampleMongoWriterTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/SampleMongoWriterTest.java @@ -16,30 +16,25 @@ package uk.ac.ebi.eva.commons.mongodb.writers; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; import com.mongodb.client.MongoCollection; import org.bson.Document; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.springframework.batch.item.Chunk; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.ApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; import uk.ac.ebi.eva.commons.mongodb.entities.SampleMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.SamplePhenotypeMongo; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; import java.util.Arrays; import java.util.Collections; @@ -47,21 +42,13 @@ import java.util.Set; import static java.util.Collections.emptyList; -import static org.junit.Assert.assertEquals; - -@RunWith(SpringRunner.class) -@UsingDataSet(locations = { - "/test-data/annotation_metadata.json", - "/test-data/annotations.json", - "/test-data/features.json", - "/test-data/files.json", - "/test-data/variants.json"}) +import static org.junit.jupiter.api.Assertions.assertEquals; + +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class SampleMongoWriterTest { - private static final String TEST_DB = "test-db"; - @Autowired private MongoOperations mongoOperations; @@ -72,30 +59,22 @@ public class SampleMongoWriterTest { private SampleMongoWriter sampleMongoWriter; - //Required by nosql-unit - @Autowired - private ApplicationContext applicationContext; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - - @Before + @BeforeEach public void setUp() { dbCollection = mongoOperations.getCollection(samplesCollection); sampleMongoWriter = new SampleMongoWriter(mongoOperations); } - @After + @AfterEach public void tearDown() { dbCollection.drop(); } @Test public void noSamplesNothingShouldBeWritten() throws Exception { - sampleMongoWriter.write(emptyList()); + sampleMongoWriter.write(new Chunk<>(emptyList())); - assertEquals(0, dbCollection.count()); + assertEquals(0, dbCollection.countDocuments()); } @Test @@ -106,9 +85,9 @@ public void variantsShouldBeWrittenIntoMongoDb() throws Exception { SamplePhenotypeMongo phenotype2 = new SamplePhenotypeMongo("category2", "value2"); SampleMongo sample2 = new SampleMongo("id2", "V", "father2", "mother2", buildPhenotypeSet(phenotype2)); - sampleMongoWriter.write(Arrays.asList(sample1, sample2)); + sampleMongoWriter.write(new Chunk<>(Arrays.asList(sample1, sample2))); - assertEquals(2, dbCollection.count()); + assertEquals(2, dbCollection.countDocuments()); } @Test @@ -116,9 +95,9 @@ public void sameSampleWrittenTwiceShouldBeStoredJustOnce() throws Exception { SamplePhenotypeMongo phenotype1 = new SamplePhenotypeMongo("category1", "value1"); SampleMongo sample1 = new SampleMongo("id1", "V", "father1", "mother1", buildPhenotypeSet(phenotype1)); - sampleMongoWriter.write(Arrays.asList(sample1, sample1)); + sampleMongoWriter.write(new Chunk<>(Arrays.asList(sample1, sample1))); - assertEquals(1, dbCollection.count()); + assertEquals(1, dbCollection.countDocuments()); } @@ -130,8 +109,8 @@ public void identicalSamplesShouldBeStoredJustOnce() throws Exception { SamplePhenotypeMongo phenotype1b = new SamplePhenotypeMongo("category1", "value1"); SampleMongo sample1b = new SampleMongo("id1", "V", "father1", "mother1", buildPhenotypeSet(phenotype1b)); - sampleMongoWriter.write(Arrays.asList(sample1, sample1b)); - assertEquals(1, dbCollection.count()); + sampleMongoWriter.write(new Chunk<>(Arrays.asList(sample1, sample1b))); + assertEquals(1, dbCollection.countDocuments()); } @Test @@ -142,11 +121,11 @@ public void addTwoSamplesAndRemoveOne() throws Exception { SamplePhenotypeMongo phenotype2 = new SamplePhenotypeMongo("category2", "value2"); SampleMongo sample2 = new SampleMongo("id2", "V", "father2", "mother2", buildPhenotypeSet(phenotype2)); - sampleMongoWriter.write(Arrays.asList(sample1, sample2)); + sampleMongoWriter.write(new Chunk<>(Arrays.asList(sample1, sample2))); sampleMongoWriter.setDelete(true); - sampleMongoWriter.write(Collections.singletonList(sample2)); + sampleMongoWriter.write(new Chunk<>(Collections.singletonList(sample2))); - assertEquals(1, dbCollection.count()); + assertEquals(1, dbCollection.countDocuments()); assertEquals("id1", ((Document)dbCollection.find().first()).get("_id")); } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriterTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriterTest.java index 72bd53aa..a1bde03b 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriterTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantMongoWriterTest.java @@ -16,24 +16,20 @@ package uk.ac.ebi.eva.commons.mongodb.writers; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; -import com.lordofthejars.nosqlunit.mongodb.MongoDbConfigurationBuilder; -import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; import com.mongodb.client.ListIndexesIterable; import com.mongodb.client.MongoCollection; import org.bson.Document; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.springframework.batch.item.Chunk; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.core.models.VariantStatistics; import uk.ac.ebi.eva.commons.core.models.VariantType; @@ -41,7 +37,6 @@ import uk.ac.ebi.eva.commons.core.models.pipeline.VariantSourceEntry; import uk.ac.ebi.eva.commons.mongodb.configuration.EvaRepositoriesConfiguration; import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; -import uk.ac.ebi.eva.commons.mongodb.test.rule.FixSpringMongoDbRule; import java.net.UnknownHostException; import java.util.ArrayList; @@ -57,11 +52,11 @@ import java.util.stream.StreamSupport; import static java.util.Collections.emptyList; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo.ALTERNATE_FIELD; import static uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo.CHROMOSOME_FIELD; import static uk.ac.ebi.eva.commons.mongodb.entities.VariantMongo.DBSNP_IDS_FIELD; @@ -82,19 +77,11 @@ /** * Testing {@link VariantMongoWriter} */ -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") -@UsingDataSet(locations = { - "/test-data/annotation_metadata.json", - "/test-data/annotations.json", - "/test-data/features.json", - "/test-data/files.json", - "/test-data/variants.json"}) @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantMongoWriterTest { - private static final String TEST_DB = "test-db"; - private static final String MAIN_ID = "b"; private static final HashSet IDS = new HashSet<>(Arrays.asList("a", MAIN_ID, "c")); @@ -103,23 +90,15 @@ public class VariantMongoWriterTest { private static final String COLLECTION_NAME = "variants"; - //Required by nosql-unit - @Autowired - private ApplicationContext applicationContext; - - @Rule - public MongoDbRule mongoDbRule = new FixSpringMongoDbRule( - MongoDbConfigurationBuilder.mongoDb().databaseName(TEST_DB).build()); - @Autowired private MongoOperations mongoOperations; - @Before + @BeforeEach public void setUp() throws Exception { mongoOperations.dropCollection(COLLECTION_NAME); } - @After + @AfterEach public void tearDown() throws Exception { mongoOperations.dropCollection(COLLECTION_NAME); } @@ -129,9 +108,9 @@ public void noVariantsNothingShouldBeWritten() throws UnknownHostException { MongoCollection dbCollection = mongoOperations.getCollection(COLLECTION_NAME); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, false); - variantMongoWriter.doWrite(emptyList()); + variantMongoWriter.doWrite(new Chunk<>(emptyList())); - assertEquals(0, dbCollection.count()); + assertEquals(0, dbCollection.countDocuments()); } @Test @@ -142,10 +121,10 @@ public void variantsShouldBeWrittenIntoMongoDb() throws Exception { MongoCollection dbCollection = mongoOperations.getCollection(COLLECTION_NAME); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, false); - variantMongoWriter.write(Collections.singletonList(variant1)); - variantMongoWriter.write(Collections.singletonList(variant2)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant1))); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant2))); - assertEquals(2, dbCollection.count()); + assertEquals(2, dbCollection.countDocuments()); } @Test @@ -177,16 +156,16 @@ public void writeTwiceSameVariantShouldUpdate() throws Exception { variant1.addSourceEntry(new VariantSourceEntry("test_file", "test_study_id")); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, false); - variantMongoWriter.write(Collections.singletonList(variant1)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant1))); - variantMongoWriter.write(Collections.singletonList(variant1)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant1))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertEquals(1, ((List) storedVariant.get(FILES_FIELD)).size()); } private Document assertThereIsOnlyOneDocumentAndReturnIt() { MongoCollection dbCollection = mongoOperations.getCollection(COLLECTION_NAME); - assertEquals(1, dbCollection.count()); + assertEquals(1, dbCollection.countDocuments()); return dbCollection.find().first(); } @@ -202,7 +181,7 @@ public void allFieldsOfVariantShouldBeStored() throws Exception { Variant variant = buildVariantWithStats(chromosome, start, end, reference, alternate, fileId, studyId); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); final List variantSources = (List) storedVariant.get(FILES_FIELD); @@ -223,7 +202,7 @@ public void includeStatsTrueShouldIncludeStatistics() throws Exception { Variant variant = buildVariantWithStats("12", 3, 4, "A", "T", "fileId", "studyId"); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, true, false); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertNotNull(storedVariant.get(STATISTICS_FIELD)); @@ -234,7 +213,7 @@ public void includeStatsFalseShouldNotIncludeStatistics() throws Exception { Variant variant = buildVariantWithStats("12", 3, 4, "A", "T", "fileId", "studyId"); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, false); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertNull(storedVariant.get(STATISTICS_FIELD)); @@ -248,7 +227,7 @@ public void idsIfPresentShouldBeWrittenIntoTheVariant() throws Exception { variant.setDbsnpIds(DBSNP_IDS); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertDocumentListEquals(IDS, (List) storedVariant.get(IDS_FIELD)); @@ -268,7 +247,7 @@ public void idsIfNotPresentShouldNotBeWrittenIntoTheVariant() throws Exception { Variant variant = buildVariantWithStats("12", 3, 4, "A", "T", "fileId", "studyId"); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertNull(storedVariant.get(IDS_FIELD)); @@ -282,7 +261,7 @@ public void writeOnlySubmittedIds() throws Exception { variant.setIds(IDS); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertDocumentListEquals(IDS, (List) storedVariant.get(IDS_FIELD)); @@ -297,7 +276,7 @@ public void writeOnlyDbsnpIds() throws Exception { variant.setDbsnpIds(DBSNP_IDS); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertNull(storedVariant.get(IDS_FIELD)); @@ -315,8 +294,8 @@ public void updateWithDbsnpIds() throws Exception { updatedDbsnpVariant.setDbsnpIds(DBSNP_IDS); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); - variantMongoWriter.write(Collections.singletonList(updatedDbsnpVariant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(updatedDbsnpVariant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertDocumentListEquals(IDS, (List) storedVariant.get(IDS_FIELD)); @@ -336,7 +315,7 @@ public void sourceEntryShouldBeWritten() throws Exception { Variant variant = buildVariantWithSampleData(chromosome, start, end, reference, alternate, fileId, studyId); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, true); - variantMongoWriter.write(Collections.singletonList(variant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); final List variantSources = (List) storedVariant.get(FILES_FIELD); @@ -357,8 +336,8 @@ public void sourceEntryShouldBeAdded() throws Exception { Variant newVariant = buildVariantWithSampleData("1", 1, 2, "A", "T", "fileId", "dbsnpStudy"); VariantMongoWriter variantMongoWriter = new VariantMongoWriter(COLLECTION_NAME, mongoOperations, false, false); - variantMongoWriter.write(Collections.singletonList(variant)); - variantMongoWriter.write(Collections.singletonList(newVariant)); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(variant))); + variantMongoWriter.write(new Chunk<>(Collections.singletonList(newVariant))); Document storedVariant = assertThereIsOnlyOneDocumentAndReturnIt(); assertEquals(2, ((List) storedVariant.get(FILES_FIELD)).size()); diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriterTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriterTest.java index cd55bdde..51c958d0 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriterTest.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/writers/VariantSourceMongoWriterTest.java @@ -16,16 +16,16 @@ package uk.ac.ebi.eva.commons.mongodb.writers; -import com.lordofthejars.nosqlunit.annotation.UsingDataSet; import com.mongodb.client.FindIterable; import com.mongodb.client.ListIndexesIterable; import com.mongodb.client.MongoCollection; import org.bson.Document; -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.springframework.batch.item.Chunk; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import uk.ac.ebi.eva.commons.core.models.Aggregation; import uk.ac.ebi.eva.commons.core.models.StudyType; @@ -37,7 +37,7 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.ac.ebi.eva.commons.mongodb.entities.VariantSourceMongo; import uk.ac.ebi.eva.commons.mongodb.entities.subdocuments.VariantGlobalStatsMongo; @@ -46,8 +46,8 @@ import java.util.stream.StreamSupport; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** @@ -56,13 +56,7 @@ * output: the VariantSourceMongo object gets written in mongo, with at least: fname, fid, sid, sname, samp, meta, stype, * date, aggregation. Stats are not there because those are written by the statistics job. */ -@RunWith(SpringRunner.class) -@UsingDataSet(locations = { - "/test-data/annotation_metadata.json", - "/test-data/annotations.json", - "/test-data/features.json", - "/test-data/files.json", - "/test-data/variants.json"}) +@ExtendWith(SpringExtension.class) @TestPropertySource("classpath:eva.properties") @ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class, EvaRepositoriesConfiguration.class}) public class VariantSourceMongoWriterTest { @@ -86,12 +80,12 @@ public class VariantSourceMongoWriterTest { @Autowired private MongoOperations mongoOperations; - @Before + @BeforeEach public void setUp() throws Exception { mongoOperations.dropCollection(COLLECTION_FILES_NAME); } - @After + @AfterEach public void tearDown() throws Exception { mongoOperations.dropCollection(COLLECTION_FILES_NAME); } @@ -103,7 +97,7 @@ public void shouldWriteAllFieldsIntoMongoDb() throws Exception { mongoOperations, COLLECTION_FILES_NAME); VariantSourceMongo variantSource = getVariantSource(); - filesWriter.write(Collections.singletonList(variantSource)); + filesWriter.write(new Chunk<>(Collections.singletonList(variantSource))); FindIterable cursor = fileCollection.find(); int count = 0; @@ -143,7 +137,7 @@ public void shouldWriteSamplesWithDotsInName() throws Exception { samplesPosition.put("JP-dash", 3); variantSource.setSamplesPosition(samplesPosition); - filesWriter.write(Collections.singletonList(variantSource)); + filesWriter.write(new Chunk<>(Collections.singletonList(variantSource))); FindIterable cursor = fileCollection.find(); @@ -162,7 +156,7 @@ public void shouldCreateUniqueFileIndex() throws Exception { VariantSourceMongoWriter filesWriter = new VariantSourceMongoWriter( mongoOperations, COLLECTION_FILES_NAME); VariantSourceMongo variantSource = getVariantSource(); - filesWriter.write(Collections.singletonList(variantSource)); + filesWriter.write(new Chunk<>(Collections.singletonList(variantSource))); ListIndexesIterable indexesInfo = fileCollection.listIndexes();