Search in sources :

Example 1 with Query

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

the class DataServiceV3ImplTest method testFindAll.

@SuppressWarnings("unchecked")
@Test
void testFindAll() {
    String entityTypeId = "MyEntityType";
    Selection filter = Selection.FULL_SELECTION;
    Selection expand = Selection.EMPTY_SELECTION;
    EntityType entityType = mock(EntityType.class);
    Repository<Entity> repository = mock(Repository.class);
    when(repository.getEntityType()).thenReturn(entityType);
    Entity entity1 = mock(Entity.class);
    Entity entity2 = mock(Entity.class);
    Sort sort = Sort.create("field", Direction.ASC);
    Fetch fetch = new Fetch().field("id", new Fetch().field("refAttr"));
    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.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(repository.findAll(findQuery)).thenReturn(Stream.of(entity1, entity2));
    when(repository.count(countQuery)).thenReturn(100L);
    when(queryMapper.map(q, repository)).thenReturn(findAllQuery).thenReturn(countQuery);
    when(sortMapper.map(sort, entityType)).thenReturn(dataSort);
    when(metaDataService.getRepository(entityTypeId)).thenReturn(Optional.of(repository));
    Entities actual = dataServiceV3Impl.findAll(entityTypeId, 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) 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)

Example 2 with Query

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

the class DataServiceV3ImplTest method testFindFieldUnsupportedAttributeType.

@SuppressWarnings("unchecked")
@Test
void testFindFieldUnsupportedAttributeType() {
    String entityTypeId = "MyEntityType";
    String entityId = "MyEntity";
    String fieldId = "MyField";
    Selection filter = Selection.FULL_SELECTION;
    Selection expand = Selection.EMPTY_SELECTION;
    Attribute idAttribute = mock(Attribute.class, "id");
    when(idAttribute.getDataType()).thenReturn(STRING);
    Attribute mrefAttribute = mock(Attribute.class, "mref");
    when(mrefAttribute.getDataType()).thenReturn(STRING);
    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"));
    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.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);
    doReturn(Optional.of(repository)).when(metaDataService).getRepository(entityTypeId);
    assertThrows(UnsupportedAttributeTypeException.class, () -> dataServiceV3Impl.findSubresources(entityTypeId, entityId, fieldId, q, filter, expand, sort, 10, 1));
}
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)

Example 3 with Query

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

the class EntityControllerTest method testGetEntities.

@Test
void testGetEntities() {
    String entityTypeId = "MyEntityTypeId";
    Selection filter = Selection.FULL_SELECTION;
    Selection expand = Selection.FULL_SELECTION;
    Query query = Query.builder().setOperator(Operator.MATCHES).setValue("value").build();
    Sort sort = Sort.create("field", Direction.ASC);
    ReadEntitiesRequest entityRequest = new ReadEntitiesRequest();
    entityRequest.setEntityTypeId(entityTypeId);
    entityRequest.setQ(query);
    entityRequest.setSort(sort);
    entityRequest.setFilter(filter);
    entityRequest.setExpand(expand);
    entityRequest.setSize(10);
    entityRequest.setPage(2);
    Entities entities = Entities.create(emptyList(), 30);
    when(dataServiceV3.findAll(entityTypeId, query, filter, expand, sort, 10, 2)).thenReturn(entities);
    EntityCollection entityCollection = EntityCollection.builder().setEntityTypeId(entityTypeId).setEntities(emptyList()).setPage(Page.builder().setOffset(20).setPageSize(10).setTotal(30).build()).build();
    EntitiesResponse entitiesResponse = mock(EntitiesResponse.class);
    when(entityMapper.map(entityCollection, filter, expand, 10, 2, 30)).thenReturn(entitiesResponse);
    assertEquals(entitiesResponse, entityController.getEntities(entityRequest));
}
Also used : Query(org.molgenis.api.model.Query) Selection(org.molgenis.api.model.Selection) EntitiesResponse(org.molgenis.api.data.v3.model.EntitiesResponse) Sort(org.molgenis.api.model.Sort) ReadEntitiesRequest(org.molgenis.api.data.v3.model.ReadEntitiesRequest) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest)

Example 4 with Query

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

the class EntityController method deleteEntities.

@DeleteMapping("/{entityTypeId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteEntities(@Valid DeleteEntitiesRequest deleteRequest) {
    Query query = deleteRequest.getQ().orElse(null);
    dataServiceV3.deleteAll(deleteRequest.getEntityTypeId(), query);
}
Also used : Query(org.molgenis.api.model.Query) DeleteMapping(org.springframework.web.bind.annotation.DeleteMapping) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus)

Example 5 with Query

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

the class QueryMapperTest method testMapLessThanUnexpectedEnumException.

@Test
void testMapLessThanUnexpectedEnumException() {
    String value = "value";
    Query query = Query.builder().setItem("test").setOperator(Operator.LESS_THAN).setValue(value).build();
    Attribute attribute = mock(Attribute.class);
    Repository<Entity> repository = createMockRepository(attribute, AttributeType.STRING);
    assertThrows(UnexpectedEnumException.class, () -> queryMapper.map(query, repository));
}
Also used : Entity(org.molgenis.data.Entity) Query(org.molgenis.api.model.Query) Attribute(org.molgenis.data.meta.model.Attribute) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest)

Aggregations

Query (org.molgenis.api.model.Query)58 Test (org.junit.jupiter.api.Test)52 AbstractMockitoTest (org.molgenis.test.AbstractMockitoTest)52 Entity (org.molgenis.data.Entity)27 Attribute (org.molgenis.data.meta.model.Attribute)22 QueryImpl (org.molgenis.data.support.QueryImpl)22 ComparisonNode (cz.jirutka.rsql.parser.ast.ComparisonNode)17 ComparisonOperator (cz.jirutka.rsql.parser.ast.ComparisonOperator)17 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)16 EntityType (org.molgenis.data.meta.model.EntityType)15 Sort (org.molgenis.api.model.Sort)14 Selection (org.molgenis.api.model.Selection)9 Fetch (org.molgenis.data.Fetch)7 AttributeMetadata (org.molgenis.data.meta.model.AttributeMetadata)5 MethodSource (org.junit.jupiter.params.provider.MethodSource)4 EntitiesResponse (org.molgenis.api.data.v3.model.EntitiesResponse)2 QueryRule (org.molgenis.data.QueryRule)2 AndNode (cz.jirutka.rsql.parser.ast.AndNode)1 OrNode (cz.jirutka.rsql.parser.ast.OrNode)1 Stream (java.util.stream.Stream)1