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