use of org.molgenis.api.model.Query in project molgenis by molgenis.
the class QueryMapperTest method testMapEqualsNull.
@Test
void testMapEqualsNull() {
Query query = Query.builder().setItem("test").setOperator(Operator.EQUALS).build();
Attribute attribute = mock(Attribute.class);
Repository<Entity> repository = createMockRepository(attribute);
when(rsqlValueParser.parse(null, attribute)).thenReturn(null);
assertEquals(new QueryImpl<>(repository).eq("test", null), queryMapper.map(query, repository));
}
use of org.molgenis.api.model.Query in project molgenis by molgenis.
the class QueryMapper method map.
private void map(Query query, QueryImpl<? extends Entity> entityQuery, EntityType entityType) {
Operator operator = query.getOperator();
switch(operator) {
case EQUALS:
entityQuery.eq(query.getItem(), mapValue(query, entityType));
break;
case NOT_EQUALS:
entityQuery.not().eq(query.getItem(), mapValue(query, entityType));
break;
case IN:
entityQuery.in(query.getItem(), (Iterable<?>) mapValue(query, entityType));
break;
case NOT_IN:
entityQuery.not().in(query.getItem(), (Iterable<?>) mapValue(query, entityType));
break;
case MATCHES:
entityQuery.search(query.getItem(), (String) mapValue(query, entityType));
break;
case SEARCH_QUERY:
entityQuery.searchQuery(query.getItem(), (String) mapValue(query, entityType));
break;
case CONTAINS:
entityQuery.like(query.getItem(), (String) mapValue(query, entityType));
break;
case LESS_THAN:
entityQuery.lt(query.getItem(), mapValue(query, entityType));
break;
case LESS_THAN_OR_EQUAL_TO:
entityQuery.le(query.getItem(), mapValue(query, entityType));
break;
case GREATER_THAN:
entityQuery.gt(query.getItem(), mapValue(query, entityType));
break;
case GREATER_THAN_OR_EQUAL_TO:
entityQuery.ge(query.getItem(), mapValue(query, entityType));
break;
case AND:
List<Query> subAndQueries = query.getQueryListValue();
entityQuery.nest();
for (Iterator<Query> it = subAndQueries.iterator(); it.hasNext(); ) {
map(it.next(), entityQuery, entityType);
if (it.hasNext()) {
entityQuery.and();
}
}
entityQuery.unnest();
break;
case OR:
List<Query> subOrQueries = query.getQueryListValue();
entityQuery.nest();
for (Iterator<Query> it = subOrQueries.iterator(); it.hasNext(); ) {
map(it.next(), entityQuery, entityType);
if (it.hasNext()) {
entityQuery.or();
}
}
entityQuery.unnest();
break;
default:
throw new UnexpectedEnumException(operator);
}
}
use of org.molgenis.api.model.Query in project molgenis by molgenis.
the class MetadataApiControllerTest method testDeleteEntityTypes.
@Test
void testDeleteEntityTypes() {
Query query = Query.create("id", IN, asList("MyEntityTypeId0", "MyEntityTypeId1"));
DeleteEntityTypesRequest deleteEntityTypesRequest = new DeleteEntityTypesRequest();
deleteEntityTypesRequest.setQ(query);
MetadataDeleteJobExecution jobExecution = mockDeleteJobExecution();
when(metadataApiService.deleteEntityTypesAsync(query)).thenReturn(jobExecution);
metadataApiController.deleteEntityTypes(deleteEntityTypesRequest);
verify(metadataApiService).deleteEntityTypesAsync(query);
}
use of org.molgenis.api.model.Query in project molgenis by molgenis.
the class MetadataApiControllerTest method testGetAttributes.
@Test
void testGetAttributes() {
String entityTypeId = "MyEntityTypeId";
Query query = mock(Query.class);
Sort sort = mock(Sort.class);
int size = 1;
int page = 2;
ReadAttributesRequest readAttributesRequest = new ReadAttributesRequest();
readAttributesRequest.setQ(query);
readAttributesRequest.setSort(sort);
readAttributesRequest.setSize(size);
readAttributesRequest.setPage(page);
Attributes attributes = mock(Attributes.class);
when(metadataApiService.findAttributes(entityTypeId, query, sort, size, page)).thenReturn(attributes);
AttributesResponse attributesResponse = mock(AttributesResponse.class);
when(attributeResponseMapper.toAttributesResponse(attributes, size, page)).thenReturn(attributesResponse);
assertEquals(attributesResponse, metadataApiController.getAttributes(entityTypeId, readAttributesRequest));
}
use of org.molgenis.api.model.Query in project molgenis by molgenis.
the class MetadataApiServiceImplTest method testDeleteEntityTypesQuery.
@SuppressWarnings("unchecked")
@Test
void testDeleteEntityTypesQuery() {
String entityTypeId0 = "MyEntityTypeId0";
String entityTypeId1 = "MyEntityTypeId1";
Query query = Query.create("id", IN, asList(entityTypeId0, entityTypeId1));
org.molgenis.data.Query<EntityType> dataServiceQuery = mock(org.molgenis.data.Query.class);
EntityType entityType0 = mock(EntityType.class);
EntityType entityType1 = mock(EntityType.class);
when(dataServiceQuery.findAll()).thenReturn(Stream.of(entityType0, entityType1));
Repository<EntityType> entityTypeRepository = mock(Repository.class);
when(metadataService.getRepository(ENTITY_TYPE_META_DATA, EntityType.class)).thenReturn(Optional.of(entityTypeRepository));
when(queryMapper.map(query, entityTypeRepository)).thenReturn(dataServiceQuery);
metadataApiService.deleteEntityTypesAsync(query);
assertAll(() -> verify(metadataApiJobService).scheduleDelete(asList(entityType0, entityType1)));
}
Aggregations