use of io.spine.client.Query in project core-java by SpineEventEngine.
the class QueryBuilderShould method create_queries_with_field_mask.
@Test
public void create_queries_with_field_mask() {
final String fieldName = "TestEntity.firstField";
final Query query = factory().query().select(TestEntity.class).withMask(fieldName).build();
assertNotNull(query);
assertTrue(query.hasFieldMask());
final FieldMask mask = query.getFieldMask();
final Collection<String> fieldNames = mask.getPathsList();
assertSize(1, fieldNames);
assertContains(fieldName, fieldNames);
}
use of io.spine.client.Query in project core-java by SpineEventEngine.
the class QueryBuilderShould method create_queries_with_ids.
@Test
public void create_queries_with_ids() {
final int id1 = 314;
final int id2 = 271;
final Query query = factory().query().select(TestEntity.class).byId(id1, id2).build();
assertNotNull(query);
assertFalse(query.hasFieldMask());
final Target target = query.getTarget();
assertFalse(target.getIncludeAll());
final EntityFilters entityFilters = target.getFilters();
final EntityIdFilter idFilter = entityFilters.getIdFilter();
final Collection<EntityId> idValues = idFilter.getIdsList();
final Function<EntityId, Integer> transformer = new EntityIdUnpacker<>(int.class);
final Collection<Integer> intIdValues = transform(idValues, transformer);
assertSize(2, idValues);
assertThat(intIdValues, containsInAnyOrder(id1, id2));
}
use of io.spine.client.Query in project core-java by SpineEventEngine.
the class QueryBuilderShould method create_queries_with_type_only.
@Test
public void create_queries_with_type_only() {
final Class<? extends Message> testEntityClass = TestEntity.class;
final Query query = factory().query().select(testEntityClass).build();
assertNotNull(query);
assertFalse(query.hasFieldMask());
final Target target = query.getTarget();
assertTrue(target.getIncludeAll());
assertEquals(TypeName.of(testEntityClass).value(), target.getType());
}
use of io.spine.client.Query in project core-java by SpineEventEngine.
the class QueryBuilderShould method create_queries_with_multiple_params.
@Test
public void create_queries_with_multiple_params() {
final String columnName1 = "myColumn";
final Object columnValue1 = 42;
final String columnName2 = "oneMore";
final Object columnValue2 = newMessageId();
final Query query = factory().query().select(TestEntity.class).where(eq(columnName1, columnValue1), eq(columnName2, columnValue2)).build();
assertNotNull(query);
final Target target = query.getTarget();
assertFalse(target.getIncludeAll());
final EntityFilters entityFilters = target.getFilters();
final Map<String, Any> columnFilters = entityFilters.getColumnFilterMap();
assertSize(2, columnFilters);
final Any actualValue1 = columnFilters.get(columnName1);
assertNotNull(actualValue1);
final int actualGenericValue1 = TypeConverter.toObject(actualValue1, int.class);
assertEquals(columnValue1, actualGenericValue1);
final Any actualValue2 = columnFilters.get(columnName2);
assertNotNull(actualValue2);
final Message actualGenericValue2 = TypeConverter.toObject(actualValue2, ProjectId.class);
assertEquals(columnValue2, actualGenericValue2);
}
use of io.spine.client.Query in project core-java by SpineEventEngine.
the class QueryServiceShould method return_error_if_query_failed_to_execute.
@Test
public void return_error_if_query_failed_to_execute() {
when(projectDetailsRepository.loadAll()).thenThrow(RuntimeException.class);
final Query query = Given.AQuery.readAllProjects();
service.read(query, responseObserver);
checkFailureResponse(responseObserver);
}
Aggregations