use of io.spine.client.EntityFilters in project core-java by SpineEventEngine.
the class QueryBuilderShould method create_queries_with_param.
@Test
public void create_queries_with_param() {
final String columnName = "myImaginaryColumn";
final Object columnValue = 42;
final Query query = factory().query().select(TestEntity.class).where(eq(columnName, columnValue)).build();
assertNotNull(query);
final Target target = query.getTarget();
assertFalse(target.getIncludeAll());
final EntityFilters entityFilters = target.getFilters();
final Map<String, Any> columnFilters = entityFilters.getColumnFilterMap();
assertSize(1, columnFilters);
final Any actualValue = columnFilters.get(columnName);
assertNotNull(columnValue);
final Int32Value messageValue = AnyPacker.unpack(actualValue);
final int actualGenericValue = messageValue.getValue();
assertEquals(columnValue, actualGenericValue);
}
use of io.spine.client.EntityFilters in project core-java by SpineEventEngine.
the class QueryBuilderShould method persist_only_last_ids_clause.
@Test
public void persist_only_last_ids_clause() {
final Iterable<?> genericIds = asList(newUuid(), -1, newMessageId());
final Long[] longIds = { 1L, 2L, 3L };
final Message[] messageIds = { newMessageId(), newMessageId(), newMessageId() };
final String[] stringIds = { newUuid(), newUuid(), newUuid() };
final Integer[] intIds = { 4, 5, 6 };
final Query query = factory().query().select(TestEntity.class).byId(genericIds).byId(longIds).byId(stringIds).byId(intIds).byId(messageIds).build();
assertNotNull(query);
final Target target = query.getTarget();
final EntityFilters filters = target.getFilters();
final Collection<EntityId> entityIds = filters.getIdFilter().getIdsList();
assertSize(messageIds.length, entityIds);
final Function<EntityId, ProjectId> transformer = new EntityIdUnpacker<>(ProjectId.class);
final Iterable<? extends Message> actualValues = transform(entityIds, transformer);
assertThat(actualValues, containsInAnyOrder(messageIds));
}
use of io.spine.client.EntityFilters in project core-java by SpineEventEngine.
the class EntityQueriesShould method construct_non_empty_queries.
@Test
public void construct_non_empty_queries() {
final Message someGenericId = Sample.messageOfType(ProjectId.class);
final Any someId = AnyPacker.pack(someGenericId);
final EntityId entityId = EntityId.newBuilder().setId(someId).build();
final EntityIdFilter idFilter = EntityIdFilter.newBuilder().addIds(entityId).build();
final Version versionValue = Version.newBuilder().setNumber(1).build();
final BoolValue archivedValue = BoolValue.newBuilder().setValue(true).build();
final EntityFilters filters = EntityFilters.newBuilder().setIdFilter(idFilter).putColumnFilter("version", AnyPacker.pack(versionValue)).putColumnFilter("archived", AnyPacker.pack(archivedValue)).build();
final Class<? extends Entity> entityClass = AbstractVersionableEntity.class;
final EntityQuery<?> query = EntityQueries.from(filters, entityClass);
assertNotNull(query);
assertSize(2, query.getParameters());
final Collection<?> ids = query.getIds();
assertFalse(ids.isEmpty());
assertSize(1, ids);
final Object singleId = ids.iterator().next();
assertEquals(someGenericId, singleId);
final Map<Column<?>, Object> params = query.getParameters();
final Collection<Object> values = params.values();
assertContains(versionValue, values);
assertContains(archivedValue.getValue(), values);
}
Aggregations