use of io.spine.test.commandservice.customer.CustomerId in project core-java by SpineEventEngine.
the class StandShould method trigger_subscription_callback_upon_update_of_aggregate.
@Test
public void trigger_subscription_callback_upon_update_of_aggregate() {
final Stand stand = prepareStandWithAggregateRepo(mock(StandStorage.class));
final Topic allCustomers = requestFactory.topic().allOf(Customer.class);
final MemoizeEntityUpdateCallback memoizeCallback = new MemoizeEntityUpdateCallback();
subscribeAndActivate(stand, allCustomers, memoizeCallback);
assertNull(memoizeCallback.newEntityState);
final Map.Entry<CustomerId, Customer> sampleData = fillSampleCustomers(1).entrySet().iterator().next();
final CustomerId customerId = sampleData.getKey();
final Customer customer = sampleData.getValue();
final Version stateVersion = Tests.newVersionWithNumber(1);
stand.update(asEnvelope(customerId, customer, stateVersion));
final Any packedState = AnyPacker.pack(customer);
assertEquals(packedState, memoizeCallback.newEntityState);
}
use of io.spine.test.commandservice.customer.CustomerId 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);
}
use of io.spine.test.commandservice.customer.CustomerId 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);
}
Aggregations