use of io.spine.core.CommandEnvelope in project core-java by SpineEventEngine.
the class DelegatingCommandDispatcherShould method delegate_onError.
@Test
public void delegate_onError() throws Exception {
final EmptyCommandDispatcherDelegate delegate = new EmptyCommandDispatcherDelegate();
final DelegatingCommandDispatcher<String> delegatingDispatcher = DelegatingCommandDispatcher.of(delegate);
final CommandEnvelope commandEnvelope = TestActorRequestFactory.newInstance(getClass()).generateEnvelope();
delegatingDispatcher.onError(commandEnvelope, new RuntimeException(getClass().getName()));
assertTrue(delegate.onErrorCalled());
}
use of io.spine.core.CommandEnvelope in project core-java by SpineEventEngine.
the class CommandEnvelopeShould method obtain_command_context.
@Test
public void obtain_command_context() {
final Command command = outerObject();
final CommandEnvelope envelope = toEnvelope(command);
assertEquals(command.getContext(), envelope.getCommandContext());
assertSame(envelope.getCommandContext(), envelope.getMessageContext());
}
use of io.spine.core.CommandEnvelope in project core-java by SpineEventEngine.
the class AggregateCommandEndpointShould method store_aggregate_on_command_dispatching.
@Test
public void store_aggregate_on_command_dispatching() {
final CommandEnvelope cmd = CommandEnvelope.of(createProject(projectId));
final AggCreateProject msg = (AggCreateProject) cmd.getMessage();
repository.dispatch(cmd);
final Optional<ProjectAggregate> optional = repository.find(projectId);
assertTrue(optional.isPresent());
final ProjectAggregate aggregate = optional.get();
assertEquals(projectId, aggregate.getId());
assertEquals(msg.getName(), aggregate.getState().getName());
}
use of io.spine.core.CommandEnvelope in project core-java by SpineEventEngine.
the class AggregateCommandEndpointShould method post_events_on_command_dispatching.
@Test
public void post_events_on_command_dispatching() {
final CommandEnvelope cmd = CommandEnvelope.of(createProject(projectId));
repository.dispatch(cmd);
final AggProjectCreated msg = subscriber.remembered;
assertEquals(projectId, msg.getProjectId());
}
use of io.spine.core.CommandEnvelope in project core-java by SpineEventEngine.
the class AggregateMessageDeliveryShould method postpone_commands_dispatched_to_command_handler_method.
@Test
public void postpone_commands_dispatched_to_command_handler_method() {
assertNull(ReactingProject.getCommandReceived());
final Command command = createProject();
boundedContext.getCommandBus().post(command, StreamObservers.<Ack>noOpObserver());
assertNull(ReactingProject.getCommandReceived());
final CommandEnvelope expectedEnvelope = CommandEnvelope.of(command);
final PostponingCommandDelivery delivery = repository.getCommandEndpointDelivery();
final Map<ProjectId, CommandEnvelope> postponedCommands = delivery.getPostponedCommands();
assertTrue(postponedCommands.size() == 1 && postponedCommands.containsValue(expectedEnvelope));
final ProjectId projectId = postponedCommands.keySet().iterator().next();
delivery.deliverNow(projectId, postponedCommands.get(projectId));
final AggCreateProject deliveredCommandMsg = ReactingProject.getCommandReceived();
assertNotNull(deliveredCommandMsg);
assertEquals(Commands.getMessage(command), deliveredCommandMsg);
}
Aggregations