@Override public VariantDBAdaptor getDBAdaptor() throws StorageEngineException { return new DummyVariantDBAdaptor(dbName); }
@Test public void testAnnotateCreateAndLoad() throws Exception { DummyVariantDBAdaptor dbAdaptor = mockVariantDBAdaptor(); List<File> files = annotate(new Query(), new QueryOptions(VariantAnnotationManager.CREATE, true)); verify(dbAdaptor, atLeastOnce()).iterator(any(Query.class), any()); verify(dbAdaptor, never()).updateAnnotations(any(), anyLong(), any()); verify(dbAdaptor, never()).updateCustomAnnotations(any(), any(), any(), anyLong(), any()); assertEquals(1, files.size()); checkAnnotation(v -> false); QueryOptions config = new QueryOptions(VariantAnnotationManager.LOAD_FILE, files.get(0).getId()); dbAdaptor = mockVariantDBAdaptor(); annotate(new Query(), config); verify(dbAdaptor, atLeastOnce()).updateAnnotations(any(), anyLong(), any()); verify(dbAdaptor, never()).updateCustomAnnotations(any(), any(), any(), anyLong(), any()); verify(dbAdaptor, never()).iterator(any(Query.class), any()); checkAnnotation(v -> true); }
Variant variant = new Variant(template); Map<Integer, List<Integer>> returnedSamples = getReturnedSamples(query, options); returnedSamples.forEach((study, samples) -> { StudyConfiguration sc = getStudyConfigurationManager().getStudyConfiguration(study, null).first(); if (sc.getIndexedFiles().isEmpty()) { return toVariantDBIterator(variants);
@Test public void testQueryExcludeSamples() throws Exception { QueryOptions queryOptions = new QueryOptions(QueryOptions.EXCLUDE, VariantField.STUDIES_SAMPLES_DATA); Query query = new Query(); // Without studies Map<String, List<Sample>> longListMap = variantManager.checkSamplesPermissions(query, queryOptions, mockVariantDBAdaptor().getStudyConfigurationManager(), sessionId); Assert.assertEquals(Collections.singletonMap(studyFqn, Collections.emptyList()), longListMap); // With studies query.append(VariantQueryParam.STUDY.key(), studyFqn); longListMap = variantManager.checkSamplesPermissions(query, queryOptions, mockVariantDBAdaptor().getStudyConfigurationManager(), sessionId); Assert.assertEquals(Collections.singletonMap(studyFqn, Collections.emptyList()), longListMap); }
@Override public VariantQueryResult<Variant> get(Query query, QueryOptions options) { logger.info("Query " + query.toJson()); logger.info("QueryOptions " + options.toJson()); logger.info("dbName " + dbName); List<Variant> variants = new ArrayList<>(); iterator(query, options).forEachRemaining(variants::add); return new VariantQueryResult<>("", 0, variants.size(), variants.size(), "", "", variants, null, DummyVariantStorageEngine.STORAGE_ENGINE_ID); }
@Test public void testCustomAnnotation() throws Exception { annotate(new Query(), new QueryOptions()); checkAnnotation(v -> true); DummyVariantDBAdaptor dbAdaptor = mockVariantDBAdaptor(); File file = opencga.createFile(studyId, "custom_annotation/myannot.gff", sessionId); QueryOptions options = new QueryOptions() .append(VariantAnnotationManager.LOAD_FILE, file.getId()) .append(VariantAnnotationManager.CUSTOM_ANNOTATION_KEY, "myAnnot"); options.put(StorageOperation.CATALOG_PATH, outputId); variantManager.annotate(String.valueOf(studyId), new Query(), opencga.createTmpOutdir(studyId, "annot", sessionId), options, sessionId); verify(dbAdaptor, atLeastOnce()).updateCustomAnnotations(any(), matches("myAnnot"), any(), anyLong(), any()); file = opencga.createFile(studyId, "custom_annotation/myannot.bed", sessionId); options = new QueryOptions() .append(VariantAnnotationManager.LOAD_FILE, file.getId()) .append(VariantAnnotationManager.CUSTOM_ANNOTATION_KEY, "myAnnot2"); options.put(StorageOperation.CATALOG_PATH, outputId); variantManager.annotate(String.valueOf(studyId), new Query(), opencga.createTmpOutdir(studyId, "annot", sessionId), options, sessionId); verify(dbAdaptor, atLeastOnce()).updateCustomAnnotations(any(), matches("myAnnot2"), any(), anyLong(), any()); }
@Test public void testQueryExcludeStudies() throws Exception { Query query = new Query(VariantQueryParam.STUDY.key(), studyId); QueryOptions queryOptions = new QueryOptions(QueryOptions.EXCLUDE, VariantField.STUDIES); Map<String, List<Sample>> longListMap = variantManager.checkSamplesPermissions(query, queryOptions, mockVariantDBAdaptor().getStudyConfigurationManager(), sessionId); Assert.assertEquals(Collections.emptyMap(), longListMap); }
protected DummyVariantDBAdaptor mockVariantDBAdaptor(DummyVariantStorageEngine vsm) throws StorageEngineException { DummyVariantDBAdaptor dbAdaptor = spy(new DummyVariantDBAdaptor("")); doReturn(dbAdaptor).when(vsm).getDBAdaptor(); return dbAdaptor; }