use of io.spine.core.Event in project core-java by SpineEventEngine.
the class TransactionShould method create_phase_for_an_applied_event.
@Test
public void create_phase_for_an_applied_event() {
final E entity = createEntity();
final Transaction<I, E, S, B> tx = createTx(entity);
final Event event = createEvent(createEventMessage());
applyEvent(tx, event);
assertEquals(1, tx.getPhases().size());
final Phase<I, E, S, B> phase = tx.getPhases().get(0);
assertTrue(checkPhase(event, phase, true));
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class TransactionShould method not_propagate_changes_to_entity_on_rollback.
@Test
public void not_propagate_changes_to_entity_on_rollback() {
final E entity = createEntity();
final Transaction<I, E, S, B> tx = createTx(entity);
final Event event = createEvent(createEventMessage());
applyEvent(tx, event);
final S stateBeforeRollback = entity.getState();
final Version versionBeforeRollback = entity.getVersion();
tx.rollback(new RuntimeException("that triggers rollback"));
final S stateAfterRollback = entity.getState();
final Version versionAfterRollback = entity.getVersion();
assertEquals(stateBeforeRollback, stateAfterRollback);
assertEquals(versionBeforeRollback, versionAfterRollback);
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class TransactionShould method set_txEntityVersion_from_EventContext.
@Test
public void set_txEntityVersion_from_EventContext() {
final E entity = createEntity();
final Transaction<I, E, S, B> tx = createTx(entity);
final Event event = createEvent(createEventMessage());
final Version ctxVersion = event.getContext().getVersion();
assertNotEquals(tx.getVersion(), ctxVersion);
applyEvent(tx, event);
final Version modifiedVersion = tx.getVersion();
assertEquals(modifiedVersion, tx.getVersion());
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class TransactionShould method notify_listener_during_transaction_execution.
@Test
// OK for a test method.
@SuppressWarnings({ "unchecked", "ConstantConditions" })
public void notify_listener_during_transaction_execution() {
final TransactionListener<I, E, S, B> listener = mock(TransactionListener.class);
final E entity = createEntity();
final Transaction<I, E, S, B> tx = createTxWithListener(entity, listener);
final Event event = createEvent(createEventMessage());
verifyZeroInteractions(listener);
applyEvent(tx, event);
verify(listener).onAfterPhase(argThat(matchesSuccessfulPhaseFor(event)));
}
use of io.spine.core.Event in project core-java by SpineEventEngine.
the class TransactionShould method propagate_changes_to_entity_applier_methods.
@Test
public void propagate_changes_to_entity_applier_methods() {
final E entity = createEntity();
final Transaction<I, E, S, B> tx = createTx(entity);
final Event event = createEvent(createEventMessage());
applyEvent(tx, event);
checkEventReceived(entity, event);
}
Aggregations