Search in sources :

Example 16 with Selection

use of org.molgenis.api.model.Selection in project molgenis by molgenis.

the class SelectionParserTest method testSingleItem.

@Test
void testSingleItem() throws ParseException {
    Map<String, Selection> itemSelections = Collections.singletonMap("abc", null);
    assertEquals(new Selection(itemSelections), new SelectionParser("abc").parse());
}
Also used : Selection(org.molgenis.api.model.Selection) Test(org.junit.jupiter.api.Test)

Example 17 with Selection

use of org.molgenis.api.model.Selection in project molgenis by molgenis.

the class SelectionParserTest method testSingleItemSingleSubSelection.

@Test
void testSingleItemSingleSubSelection() throws ParseException {
    Map<String, Selection> subItemSelections = Collections.singletonMap("def", null);
    Map<String, Selection> itemSelections = Collections.singletonMap("abc", new Selection(subItemSelections));
    assertEquals(new Selection(itemSelections), new SelectionParser("abc(def)").parse());
}
Also used : Selection(org.molgenis.api.model.Selection) Test(org.junit.jupiter.api.Test)

Example 18 with Selection

use of org.molgenis.api.model.Selection in project molgenis by molgenis.

the class SelectionParserTest method testMultipleItems.

@Test
void testMultipleItems() throws ParseException {
    Map<String, Selection> itemSelections = new HashMap<>();
    itemSelections.put("abc", null);
    itemSelections.put("def", null);
    assertEquals(new Selection(itemSelections), new SelectionParser("abc,def").parse());
}
Also used : HashMap(java.util.HashMap) Selection(org.molgenis.api.model.Selection) Test(org.junit.jupiter.api.Test)

Example 19 with Selection

use of org.molgenis.api.model.Selection in project molgenis by molgenis.

the class SelectionParserTest method testSingleItemMultipleSubSelection.

@Test
void testSingleItemMultipleSubSelection() throws ParseException {
    Map<String, Selection> subItemSelections = new HashMap<>();
    subItemSelections.put("def", null);
    subItemSelections.put("ghi", null);
    Map<String, Selection> itemSelections = Collections.singletonMap("abc", new Selection(subItemSelections));
    assertEquals(new Selection(itemSelections), new SelectionParser("abc(def,ghi)").parse());
}
Also used : HashMap(java.util.HashMap) Selection(org.molgenis.api.model.Selection) Test(org.junit.jupiter.api.Test)

Example 20 with Selection

use of org.molgenis.api.model.Selection in project molgenis by molgenis.

the class DataServiceV3ImplTest method testFindField.

@SuppressWarnings("unchecked")
@Test
void testFindField() {
    String entityTypeId = "MyEntityType";
    String refEntityTypeId = "refEntityType";
    String entityId = "MyEntity";
    String fieldId = "MyField";
    Selection filter = Selection.FULL_SELECTION;
    Selection expand = Selection.EMPTY_SELECTION;
    Attribute refIdAttribute = mock(Attribute.class, "mrefId");
    when(refIdAttribute.getName()).thenReturn("id");
    EntityType refEntityType = mock(EntityType.class, "refEntityType");
    when(refEntityType.getId()).thenReturn(refEntityTypeId);
    when(refEntityType.getIdAttribute()).thenReturn(refIdAttribute);
    Attribute idAttribute = mock(Attribute.class, "id");
    when(idAttribute.getDataType()).thenReturn(STRING);
    Attribute mrefAttribute = mock(Attribute.class, "mref");
    when(mrefAttribute.getName()).thenReturn("MyField");
    when(mrefAttribute.getDataType()).thenReturn(MREF);
    when(mrefAttribute.getRefEntity()).thenReturn(refEntityType);
    EntityType entityType = mock(EntityType.class, "entityType");
    when(entityType.getIdAttribute()).thenReturn(idAttribute);
    when(entityType.getAttribute(fieldId)).thenReturn(mrefAttribute);
    Repository<Entity> repository = mock(Repository.class);
    when(repository.getEntityType()).thenReturn(entityType);
    Fetch fetch = new Fetch().field("MyField", new Fetch().field("id"));
    Entity entity = mock(Entity.class);
    doReturn(entity).when(repository).findOneById(entityId, fetch);
    Repository<Entity> refRepository = mock(Repository.class);
    when(refRepository.getEntityType()).thenReturn(refEntityType);
    Entity entity1 = mock(Entity.class);
    doReturn("entity1").when(entity1).getIdValue();
    Entity entity2 = mock(Entity.class);
    doReturn("entity2").when(entity2).getIdValue();
    Entity entity3 = mock(Entity.class);
    doReturn("entity3").when(entity3).getIdValue();
    doReturn(Arrays.asList(entity1, entity2, entity3)).when(entity).getEntities("MyField");
    Sort sort = Sort.create("field", Direction.ASC);
    Query q = Query.builder().setOperator(Operator.MATCHES).setValue("value").build();
    org.molgenis.data.Query<Entity> findAllQuery = mock(org.molgenis.data.Query.class);
    org.molgenis.data.Sort dataSort = mock(org.molgenis.data.Sort.class);
    org.molgenis.data.Query<Entity> findQuery = new QueryImpl<>(findAllQuery);
    findQuery.in("id", Arrays.asList("entity1", "entity2", "entity3"));
    findQuery.fetch(fetch);
    findQuery.offset(10);
    findQuery.pageSize(10);
    findQuery.sort(dataSort);
    org.molgenis.data.Query<Entity> countQuery = new QueryImpl<>(findAllQuery);
    countQuery.offset(0);
    countQuery.pageSize(Integer.MAX_VALUE);
    when(queryMapper.map(q, refRepository)).thenReturn(findAllQuery).thenReturn(countQuery);
    countQuery.in("id", Arrays.asList("entity1", "entity2", "entity3"));
    when(refRepository.count(countQuery)).thenReturn(100L);
    when(refRepository.findAll(findQuery)).thenReturn(Stream.of(entity1, entity2));
    when(sortMapper.map(sort, refEntityType)).thenReturn(dataSort);
    doReturn(Optional.of(repository)).when(metaDataService).getRepository(entityTypeId);
    doReturn(Optional.of(refRepository)).when(metaDataService).getRepository(refEntityTypeId);
    Entities actual = dataServiceV3Impl.findSubresources(entityTypeId, entityId, fieldId, q, filter, expand, sort, 10, 1);
    assertEquals(actual, Entities.builder().setEntities(asList(entity1, entity2)).setTotal(100).build());
}
Also used : Entity(org.molgenis.data.Entity) Query(org.molgenis.api.model.Query) Attribute(org.molgenis.data.meta.model.Attribute) Selection(org.molgenis.api.model.Selection) EntityType(org.molgenis.data.meta.model.EntityType) Fetch(org.molgenis.data.Fetch) QueryImpl(org.molgenis.data.support.QueryImpl) Sort(org.molgenis.api.model.Sort) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest)

Aggregations

Selection (org.molgenis.api.model.Selection)32 Test (org.junit.jupiter.api.Test)24 AbstractMockitoTest (org.molgenis.test.AbstractMockitoTest)19 Entity (org.molgenis.data.Entity)18 Attribute (org.molgenis.data.meta.model.Attribute)15 EntityType (org.molgenis.data.meta.model.EntityType)13 Fetch (org.molgenis.data.Fetch)12 Sort (org.molgenis.api.model.Sort)11 Query (org.molgenis.api.model.Query)9 QueryImpl (org.molgenis.data.support.QueryImpl)7 URI (java.net.URI)5 EntityResponse (org.molgenis.api.data.v3.model.EntityResponse)5 CheckForNull (javax.annotation.CheckForNull)4 Nullable (javax.annotation.Nullable)4 EntitiesResponse (org.molgenis.api.data.v3.model.EntitiesResponse)4 HashMap (java.util.HashMap)3 Transactional (org.springframework.transaction.annotation.Transactional)3 GetMapping (org.springframework.web.bind.annotation.GetMapping)3 Streams.stream (com.google.common.collect.Streams.stream)2 LinkedHashMap (java.util.LinkedHashMap)2