Search in sources :

Example 16 with Query

use of io.spine.client.Query in project core-java by SpineEventEngine.

the class StandShould method return_empty_list_for_aggregate_read_all_on_empty_stand_storage.

@Test
public void return_empty_list_for_aggregate_read_all_on_empty_stand_storage() {
    final Query readAllCustomers = requestFactory.query().all(Customer.class);
    checkEmptyResultForTargetOnEmptyStorage(readAllCustomers);
}
Also used : Query(io.spine.client.Query) Test(org.junit.Test) TenantAwareTest(io.spine.server.tenant.TenantAwareTest)

Example 17 with Query

use of io.spine.client.Query in project core-java by SpineEventEngine.

the class StandShould method retrieve_all_data_if_field_mask_is_not_set.

@Test
public void retrieve_all_data_if_field_mask_is_not_set() {
    final Stand stand = prepareStandWithAggregateRepo(createStandStorage());
    final Customer sampleCustomer = getSampleCustomer();
    final Version stateVersion = Tests.newVersionWithNumber(1);
    stand.update(asEnvelope(sampleCustomer.getId(), sampleCustomer, stateVersion));
    final Query customerQuery = requestFactory.query().all(Customer.class);
    //noinspection OverlyComplexAnonymousInnerClass
    final MemoizeQueryResponseObserver observer = new MemoizeQueryResponseObserver() {

        @Override
        public void onNext(QueryResponse value) {
            super.onNext(value);
            final List<Any> messages = value.getMessagesList();
            assertFalse(messages.isEmpty());
            final Customer customer = AnyPacker.unpack(messages.get(0));
            for (Descriptors.FieldDescriptor field : customer.getDescriptorForType().getFields()) {
                assertTrue(customer.getField(field).equals(sampleCustomer.getField(field)));
            }
        }
    };
    stand.execute(customerQuery, observer);
    verifyObserver(observer);
}
Also used : Query(io.spine.client.Query) Customer(io.spine.test.commandservice.customer.Customer) Version(io.spine.base.Version) QueryResponse(io.spine.client.QueryResponse) Descriptors(com.google.protobuf.Descriptors) Any(com.google.protobuf.Any) Test(org.junit.Test) TenantAwareTest(io.spine.server.tenant.TenantAwareTest)

Example 18 with Query

use of io.spine.client.Query in project core-java by SpineEventEngine.

the class StandShould method requestSampleCustomer.

private void requestSampleCustomer(int[] fieldIndexes, final MemoizeQueryResponseObserver observer) {
    final Stand stand = prepareStandWithAggregateRepo(createStandStorage());
    final Customer sampleCustomer = getSampleCustomer();
    final Version stateVersion = Tests.newVersionWithNumber(1);
    stand.update(asEnvelope(sampleCustomer.getId(), sampleCustomer, stateVersion));
    final String[] paths = new String[fieldIndexes.length];
    for (int i = 0; i < fieldIndexes.length; i++) {
        paths[i] = Customer.getDescriptor().getFields().get(fieldIndexes[i]).getFullName();
    }
    final Query customerQuery = requestFactory.query().allWithMask(Customer.class, paths);
    stand.execute(customerQuery, observer);
    verifyObserver(observer);
}
Also used : Query(io.spine.client.Query) Customer(io.spine.test.commandservice.customer.Customer) Version(io.spine.base.Version)

Example 19 with Query

use of io.spine.client.Query in project core-java by SpineEventEngine.

the class StandShould method doCheckReadingCustomersByIdAndFieldMask.

@SuppressWarnings("MethodWithMultipleLoops")
private void doCheckReadingCustomersByIdAndFieldMask(String... paths) {
    final Stand stand = prepareStandWithAggregateRepo(createStandStorage());
    final int querySize = 2;
    final Set<CustomerId> ids = new HashSet<>();
    for (int i = 0; i < querySize; i++) {
        final Customer customer = getSampleCustomer().toBuilder().setId(CustomerId.newBuilder().setNumber(i)).build();
        final Version stateVersion = Tests.newVersionWithNumber(1);
        stand.update(asEnvelope(customer.getId(), customer, stateVersion));
        ids.add(customer.getId());
    }
    final Query customerQuery = requestFactory.query().byIdsWithMask(Customer.class, ids, paths);
    final FieldMask fieldMask = FieldMask.newBuilder().addAllPaths(Arrays.asList(paths)).build();
    final MemoizeQueryResponseObserver observer = new MemoizeQueryResponseObserver() {

        @Override
        public void onNext(QueryResponse value) {
            super.onNext(value);
            final List<Any> messages = value.getMessagesList();
            Verify.assertSize(ids.size(), messages);
            for (Any message : messages) {
                final Customer customer = AnyPacker.unpack(message);
                assertNotEquals(customer, null);
                assertMatches(customer, fieldMask);
            }
        }
    };
    stand.execute(customerQuery, observer);
    verifyObserver(observer);
}
Also used : Query(io.spine.client.Query) Customer(io.spine.test.commandservice.customer.Customer) CustomerId(io.spine.test.commandservice.customer.CustomerId) Any(com.google.protobuf.Any) Version(io.spine.base.Version) QueryResponse(io.spine.client.QueryResponse) FieldMask(com.google.protobuf.FieldMask) Sets.newHashSet(com.google.common.collect.Sets.newHashSet) HashSet(java.util.HashSet)

Example 20 with Query

use of io.spine.client.Query in project core-java by SpineEventEngine.

the class StandShould method select_entity_singleton_by_id_and_apply_field_masks.

@SuppressWarnings("MethodWithMultipleLoops")
@Test
public void select_entity_singleton_by_id_and_apply_field_masks() {
    final Stand stand = prepareStandWithAggregateRepo(createStandStorage());
    final String customerDescriptor = Customer.getDescriptor().getFullName();
    // clashes with non-related tests.
    @SuppressWarnings("DuplicateStringLiteralInspection") final String[] paths = { customerDescriptor + ".id", customerDescriptor + ".name" };
    final FieldMask fieldMask = FieldMask.newBuilder().addAllPaths(Arrays.asList(paths)).build();
    final List<Customer> customers = new LinkedList<>();
    final int count = 10;
    for (int i = 0; i < count; i++) {
        // Has new ID each time
        final Customer customer = getSampleCustomer();
        customers.add(customer);
        final Version stateVersion = Tests.newVersionWithNumber(1);
        stand.update(asEnvelope(customer.getId(), customer, stateVersion));
    }
    final Set<CustomerId> ids = Collections.singleton(customers.get(0).getId());
    final Query customerQuery = requestFactory.query().byIdsWithMask(Customer.class, ids, paths);
    final MemoizeQueryResponseObserver observer = new MemoizeQueryResponseObserver();
    stand.execute(customerQuery, observer);
    final List<Any> read = observer.responseHandled.getMessagesList();
    Verify.assertSize(1, read);
    final Customer customer = AnyPacker.unpack(read.get(0));
    assertMatches(customer, fieldMask);
    assertTrue(ids.contains(customer.getId()));
    verifyObserver(observer);
}
Also used : Query(io.spine.client.Query) Customer(io.spine.test.commandservice.customer.Customer) CustomerId(io.spine.test.commandservice.customer.CustomerId) Any(com.google.protobuf.Any) LinkedList(java.util.LinkedList) Version(io.spine.base.Version) FieldMask(com.google.protobuf.FieldMask) Test(org.junit.Test) TenantAwareTest(io.spine.server.tenant.TenantAwareTest)

Aggregations

Query (io.spine.client.Query)27 Test (org.junit.Test)23 Any (com.google.protobuf.Any)10 TenantAwareTest (io.spine.server.tenant.TenantAwareTest)8 Target (io.spine.client.Target)6 Customer (io.spine.test.commandservice.customer.Customer)6 Matchers.containsString (org.hamcrest.Matchers.containsString)6 FieldMask (com.google.protobuf.FieldMask)5 Version (io.spine.base.Version)5 EntityFilters (io.spine.client.EntityFilters)5 QueryResponse (io.spine.client.QueryResponse)4 Message (com.google.protobuf.Message)3 EntityId (io.spine.client.EntityId)3 TestEntity (io.spine.test.client.TestEntity)3 CustomerId (io.spine.test.commandservice.customer.CustomerId)3 TypeUrl (io.spine.type.TypeUrl)3 EntityIdFilter (io.spine.client.EntityIdFilter)2 StandStorage (io.spine.server.stand.StandStorage)2 Sets.newHashSet (com.google.common.collect.Sets.newHashSet)1 CanIgnoreReturnValue (com.google.errorprone.annotations.CanIgnoreReturnValue)1