From b16e2a0053ec7bba22dee3e97ebbc543344689af Mon Sep 17 00:00:00 2001 From: sundarvenkata Date: Sun, 17 Nov 2019 15:20:39 +0000 Subject: [PATCH 1/3] Initial commit --- .../models/DefaultLocusRangeMetadata.java | 87 +++++++++++++++++ .../models/IDefaultLocusRangeMetadata.java | 26 ++++++ .../DefaultLocusRangeMetadataMongo.java | 93 +++++++++++++++++++ .../DefaultLocusRangeMetadataRepository.java | 34 +++++++ .../DefaultLocusRangeMetadataService.java | 44 +++++++++ 5 files changed, 284 insertions(+) create mode 100644 variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/DefaultLocusRangeMetadata.java create mode 100644 variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/IDefaultLocusRangeMetadata.java create mode 100644 variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java create mode 100644 variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepository.java create mode 100644 variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java diff --git a/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/DefaultLocusRangeMetadata.java b/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/DefaultLocusRangeMetadata.java new file mode 100644 index 00000000..e51dae75 --- /dev/null +++ b/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/DefaultLocusRangeMetadata.java @@ -0,0 +1,87 @@ +/* + * 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.core.models; + +/** + * Base implementation of {@link IDefaultLocusRangeMetadata} + */ +public class DefaultLocusRangeMetadata implements IDefaultLocusRangeMetadata { + + private String chromosome; + + private long start; + + private long end; + + public DefaultLocusRangeMetadata() { + + } + + public DefaultLocusRangeMetadata(IDefaultLocusRangeMetadata defaultLocusRangeMetadata) { + this(defaultLocusRangeMetadata.getChromosome(), defaultLocusRangeMetadata.getStart(), + defaultLocusRangeMetadata.getEnd()); + } + + public DefaultLocusRangeMetadata(String chromosome, long start, long end) { + this.chromosome = chromosome; + this.start = start; + this.end = end; + } + + @Override + public String getChromosome() { + return chromosome; + } + + @Override + public long getStart() { + return start; + } + + @Override + public long getEnd() { + return end; + } + + @Override + public String toString() { + return "DefaultLocusRangeMetadata{" + + "chromosome='" + chromosome + '\'' + + ", start='" + start + '\'' + + ", end='" + end + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DefaultLocusRangeMetadata that = (DefaultLocusRangeMetadata) o; + + if (start != that.start) return false; + if (end != that.end) return false; + return chromosome.equals(that.chromosome); + } + + @Override + public int hashCode() { + int result = chromosome.hashCode(); + result = 31 * result + (int) (start ^ (start >>> 32)); + result = 31 * result + (int) (end ^ (end >>> 32)); + return result; + } +} diff --git a/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/IDefaultLocusRangeMetadata.java b/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/IDefaultLocusRangeMetadata.java new file mode 100644 index 00000000..081c62dc --- /dev/null +++ b/variation-commons-core/src/main/java/uk/ac/ebi/eva/commons/core/models/IDefaultLocusRangeMetadata.java @@ -0,0 +1,26 @@ +/* + * 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.core.models; + +public interface IDefaultLocusRangeMetadata { + + String getChromosome(); + + long getStart(); + + long getEnd(); + +} diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java new file mode 100644 index 00000000..f195837a --- /dev/null +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java @@ -0,0 +1,93 @@ +/* + * 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.entities; + +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; +import uk.ac.ebi.eva.commons.core.models.IDefaultLocusRangeMetadata; + +/** + * Mapped class for annotations metadata collection in mongo + */ +@Document(collection = "#{mongoCollectionsDefaultLocusRangeMetadata}") +public class DefaultLocusRangeMetadataMongo implements IDefaultLocusRangeMetadata { + + private static final String CHROMOSOME_FIELD = "chromosome"; + + private static final String START_FIELD = "start"; + + private static final String END_FIELD = "end"; + + @Field(CHROMOSOME_FIELD) + private String chromosome; + + @Field(START_FIELD) + private long start; + + @Field(END_FIELD) + private long end; + + DefaultLocusRangeMetadataMongo() { + // Empty document constructor for spring-data + } + + public DefaultLocusRangeMetadataMongo(String chromosome, long start, long end) { + this.chromosome = chromosome; + this.start = start; + this.end = end; + } + + public String getChromosome() { + return chromosome; + } + + public long getStart() { + return start; + } + + public long getEnd() { + return end; + } + + @Override + public String toString() { + return "DefaultLocusRangeMetadataMongo{" + + "chromosome='" + chromosome + '\'' + + ", start='" + start + '\'' + + ", end='" + end + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DefaultLocusRangeMetadataMongo that = (DefaultLocusRangeMetadataMongo) o; + + if (start != that.start) return false; + if (end != that.end) return false; + return chromosome.equals(that.chromosome); + } + + @Override + public int hashCode() { + int result = chromosome.hashCode(); + result = 31 * result + (int) (start ^ (start >>> 32)); + result = 31 * result + (int) (end ^ (end >>> 32)); + return result; + } +} diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepository.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepository.java new file mode 100644 index 00000000..d39a00c0 --- /dev/null +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepository.java @@ -0,0 +1,34 @@ +/* + * 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.repositories; + +import org.springframework.data.mongodb.repository.MongoRepository; +import uk.ac.ebi.eva.commons.mongodb.entities.DefaultLocusRangeMetadataMongo; + +import java.util.List; + +/** + * Spring MongoRepository for querying collection of DefaultLocusRangeMetadataMongo documents + */ +public interface DefaultLocusRangeMetadataRepository extends MongoRepository { + + /** + * Query for all DefaultLocusRangeMetadataMongo from collection + * + * @return List of DefaultLocusRangeMetadataMongo objects + */ + List findAllByOrderByChromosomeAscStartAscEndAsc(); +} diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java new file mode 100644 index 00000000..ab030e9e --- /dev/null +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java @@ -0,0 +1,44 @@ +/* + * 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.services; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import uk.ac.ebi.eva.commons.core.models.DefaultLocusRangeMetadata; +import uk.ac.ebi.eva.commons.mongodb.entities.DefaultLocusRangeMetadataMongo; +import uk.ac.ebi.eva.commons.mongodb.repositories.DefaultLocusRangeMetadataRepository; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * Mongo persistence service to access {@link DefaultLocusRangeMetadata} + */ +@Service +public class DefaultLocusRangeMetadataService { + + @Autowired + private DefaultLocusRangeMetadataRepository repository; + + public List findAllByOrderByChromosomeAscStartAscEndAsc() { + return convert(repository.findAllByOrderByChromosomeAscStartAscEndAsc()); + } + + private List convert(List annotationMetadatas) { + return annotationMetadatas.stream().map(DefaultLocusRangeMetadata::new).collect(Collectors.toList()); + } + +} From d2597c312516c5c3e1c6ab1666c5d36c4a7f0082 Mon Sep 17 00:00:00 2001 From: Sundar Venkataraman Date: Sun, 17 Nov 2019 17:41:29 +0000 Subject: [PATCH 2/3] Support default locus range collection --- .../DefaultLocusRangeMetadataMongo.java | 21 ++++++++-- .../DefaultLocusRangeMetadataService.java | 4 +- .../mongodb/DatabaseTestConfiguration.java | 8 ++++ .../MongoRepositoryTestConfiguration.java | 8 ++++ ...faultLocusRangeMetadataRepositoryTest.java | 41 +++++++++++++++++++ .../src/test/resources/application.properties | 3 +- .../src/test/resources/eva.properties | 2 +- .../test-data/defaultLocusRange.json | 10 +++++ 8 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepositoryTest.java create mode 100644 variation-commons-mongodb/src/test/resources/test-data/defaultLocusRange.json diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java index f195837a..f7e4091b 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/entities/DefaultLocusRangeMetadataMongo.java @@ -15,6 +15,7 @@ */ package uk.ac.ebi.eva.commons.mongodb.entities; +import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; import uk.ac.ebi.eva.commons.core.models.IDefaultLocusRangeMetadata; @@ -25,12 +26,15 @@ @Document(collection = "#{mongoCollectionsDefaultLocusRangeMetadata}") public class DefaultLocusRangeMetadataMongo implements IDefaultLocusRangeMetadata { - private static final String CHROMOSOME_FIELD = "chromosome"; + private static final String CHROMOSOME_FIELD = "chr"; private static final String START_FIELD = "start"; private static final String END_FIELD = "end"; + @Id + private String id; + @Field(CHROMOSOME_FIELD) private String chromosome; @@ -44,12 +48,21 @@ public class DefaultLocusRangeMetadataMongo implements IDefaultLocusRangeMetadat // Empty document constructor for spring-data } - public DefaultLocusRangeMetadataMongo(String chromosome, long start, long end) { + public DefaultLocusRangeMetadataMongo(String id, String chromosome, long start, long end) { + this.id = id; this.chromosome = chromosome; this.start = start; this.end = end; } + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + public String getChromosome() { return chromosome; } @@ -78,6 +91,7 @@ public boolean equals(Object o) { DefaultLocusRangeMetadataMongo that = (DefaultLocusRangeMetadataMongo) o; + if (id != null ? !id.equals(that.id) : that.id != null) return false; if (start != that.start) return false; if (end != that.end) return false; return chromosome.equals(that.chromosome); @@ -85,7 +99,8 @@ public boolean equals(Object o) { @Override public int hashCode() { - int result = chromosome.hashCode(); + int result = id != null ? id.hashCode() : 0; + result = 31 * result + (chromosome != null ? chromosome.hashCode() : 0); result = 31 * result + (int) (start ^ (start >>> 32)); result = 31 * result + (int) (end ^ (end >>> 32)); return result; diff --git a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java index ab030e9e..00354343 100644 --- a/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java +++ b/variation-commons-mongodb/src/main/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataService.java @@ -37,8 +37,8 @@ public List findAllByOrderByChromosomeAscStartAscEndA return convert(repository.findAllByOrderByChromosomeAscStartAscEndAsc()); } - private List convert(List annotationMetadatas) { - return annotationMetadatas.stream().map(DefaultLocusRangeMetadata::new).collect(Collectors.toList()); + private List convert(List defaultLocusRangeMetadatas) { + return defaultLocusRangeMetadatas.stream().map(DefaultLocusRangeMetadata::new).collect(Collectors.toList()); } } diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/DatabaseTestConfiguration.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/DatabaseTestConfiguration.java index 359c8ffb..46b99fb3 100644 --- a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/DatabaseTestConfiguration.java +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/DatabaseTestConfiguration.java @@ -29,9 +29,17 @@ public class DatabaseTestConfiguration { @Value("${db.collections.annotation-metadata.name}") public String mongoCollectionsAnnotationMetadata; + @Value("${db.collections.default-locus-range-metadata.name}") + public String mongoCollectionsDefaultLocusRangeMetadata; + @Bean public String mongoCollectionsAnnotationMetadata() { return mongoCollectionsAnnotationMetadata; } + @Bean + public String mongoCollectionsDefaultLocusRangeMetadata() { + return mongoCollectionsDefaultLocusRangeMetadata; + } + } 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 90975172..c4605a60 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 @@ -44,6 +44,14 @@ public String mongoCollectionsAnnotationMetadata( return collectionAnnotationMetadata; } + @Bean + public String mongoCollectionsDefaultLocusRangeMetadata( + @Value("${eva.mongo.collections.default-locus-range-metadata:#{null}}") + String collectionDefaultLocusRangeMetadata) { + Assert.notNull(collectionDefaultLocusRangeMetadata); + return collectionDefaultLocusRangeMetadata; + } + @Bean public String mongoCollectionsAnnotations( @Value("${eva.mongo.collections.annotations:#{null}}") String collectionAnnotations) { diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepositoryTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepositoryTest.java new file mode 100644 index 00000000..7e2df019 --- /dev/null +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/repositories/DefaultLocusRangeMetadataRepositoryTest.java @@ -0,0 +1,41 @@ +package uk.ac.ebi.eva.commons.mongodb.repositories; + +import com.lordofthejars.nosqlunit.annotation.UsingDataSet; +import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; +import uk.ac.ebi.eva.commons.mongodb.entities.DefaultLocusRangeMetadataMongo; + +import java.util.List; + +import static com.lordofthejars.nosqlunit.mongodb.MongoDbRule.MongoDbRuleBuilder.newMongoDbRule; +import static org.junit.Assert.*; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class}) +@UsingDataSet(locations = {"/test-data/defaultLocusRange.json"}) +public class DefaultLocusRangeMetadataRepositoryTest { + + @Autowired + private ApplicationContext applicationContext; + + @Rule + public MongoDbRule mongoDbRule = newMongoDbRule().defaultSpringMongoDb("test-db"); + + @Autowired + private DefaultLocusRangeMetadataRepository repository; + + @Test + public void findOneByDefault() throws Exception { + List defaultLocusRangeMetadataMongoList = + repository.findAllByOrderByChromosomeAscStartAscEndAsc(); + assertEquals(1, defaultLocusRangeMetadataMongoList.size()); + } +} \ No newline at end of file diff --git a/variation-commons-mongodb/src/test/resources/application.properties b/variation-commons-mongodb/src/test/resources/application.properties index 3af51c61..dd4742e3 100644 --- a/variation-commons-mongodb/src/test/resources/application.properties +++ b/variation-commons-mongodb/src/test/resources/application.properties @@ -1 +1,2 @@ -db.collections.annotation-metadata.name=annotation_metadata \ No newline at end of file +db.collections.annotation-metadata.name=annotation_metadata +db.collections.default-locus-range-metadata.name=defaultLocusRange diff --git a/variation-commons-mongodb/src/test/resources/eva.properties b/variation-commons-mongodb/src/test/resources/eva.properties index 090a10d3..239e0a31 100644 --- a/variation-commons-mongodb/src/test/resources/eva.properties +++ b/variation-commons-mongodb/src/test/resources/eva.properties @@ -6,9 +6,9 @@ eva.mongo.read-preference= eva.mongo.collections.variants=variants_1_2 eva.mongo.collections.files=files eva.mongo.collections.annotation-metadata=annotation_metadata +eva.mongo.collections.default-locus-range-metadata=defaultLocusRange eva.mongo.collections.annotations=annotations eva.mongo.collections.features=features eva.mongo.collections.samples=samples eva.version= eva.evapro.datasource= - diff --git a/variation-commons-mongodb/src/test/resources/test-data/defaultLocusRange.json b/variation-commons-mongodb/src/test/resources/test-data/defaultLocusRange.json new file mode 100644 index 00000000..885bf1a8 --- /dev/null +++ b/variation-commons-mongodb/src/test/resources/test-data/defaultLocusRange.json @@ -0,0 +1,10 @@ +{ + "defaultLocusRange": [ + { + "_id": "5dcfc21a84fa156b8b674b08", + "chr" : "JH658330.1", + "start" : 1, + "end" : 1000000 + } + ] +} \ No newline at end of file From 3cb7da31d49e6bfd5f2326225c53c11ed2c4f976 Mon Sep 17 00:00:00 2001 From: Sundar Venkataraman Date: Wed, 20 Nov 2019 11:10:39 +0000 Subject: [PATCH 3/3] Add tests for default locus range service --- .../DefaultLocusRangeMetadataServiceTest.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataServiceTest.java diff --git a/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataServiceTest.java b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataServiceTest.java new file mode 100644 index 00000000..359530e9 --- /dev/null +++ b/variation-commons-mongodb/src/test/java/uk/ac/ebi/eva/commons/mongodb/services/DefaultLocusRangeMetadataServiceTest.java @@ -0,0 +1,57 @@ +/* + * 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.services; + +import com.lordofthejars.nosqlunit.annotation.UsingDataSet; +import com.lordofthejars.nosqlunit.mongodb.MongoDbRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import uk.ac.ebi.eva.commons.core.models.DefaultLocusRangeMetadata; +import uk.ac.ebi.eva.commons.mongodb.configuration.MongoRepositoryTestConfiguration; + +import java.util.List; + +import static com.lordofthejars.nosqlunit.mongodb.MongoDbRule.MongoDbRuleBuilder.newMongoDbRule; +import static org.junit.Assert.assertEquals; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = {MongoRepositoryTestConfiguration.class}) +@UsingDataSet(locations = {"/test-data/defaultLocusRange.json"}) +public class DefaultLocusRangeMetadataServiceTest { + + private static final String TEST_DB = "test-db"; + + @Autowired + private ApplicationContext applicationContext; + + @Autowired + private DefaultLocusRangeMetadataService service; + + @Rule + public MongoDbRule mongoDbRule = newMongoDbRule().defaultSpringMongoDb(TEST_DB); + + @Test + public void testFindAllByOrderByChromosomeAscStartAscEndAscSize() throws Exception { + List defaultLocusRangeMetadataMongoList = service.findAllByOrderByChromosomeAscStartAscEndAsc(); + assertEquals(1, defaultLocusRangeMetadataMongoList.size()); + } +}