final class DebugEventProjection implements ProjectionInterface (View source)

internal  
 

Testing projection to assert (via primary key) that each event is only handled once, also in error cases via rollback

TODO check also that order of inserted sequence numbers is correct and no holes

Methods

__construct(string $tableNamePrefix, Connection $dbal)

No description

void
setUp()

Set up the projection state (create/update required database tables, ...).

status()

Determines the setup status of the projection. E.g. are the database tables created or any columns missing.

void
resetState()

No description

void
apply(EventInterface $event, EventEnvelope $eventEnvelope)

No description

getState()

NOTE: The state will be accessed eagerly ONCE upon initialisation of the content repository and put into the immutable {ProjectionStates} collection.

void
injectSaboteur(Closure $saboteur)

No description

void
killSaboteur()

No description

void
schemaNeedsAdditionalColumn(string $name)

No description

void
dropTables()

No description

Details

__construct(string $tableNamePrefix, Connection $dbal)

No description

Parameters

string $tableNamePrefix
Connection $dbal

void setUp()

Set up the projection state (create/update required database tables, ...).

Return Value

void

ProjectionStatus status()

Determines the setup status of the projection. E.g. are the database tables created or any columns missing.

Return Value

ProjectionStatus

void resetState()

No description

Return Value

void

void apply(EventInterface $event, EventEnvelope $eventEnvelope)

No description

Parameters

EventInterface $event
EventEnvelope $eventEnvelope

Return Value

void

ProjectionStateInterface getState()

NOTE: The state will be accessed eagerly ONCE upon initialisation of the content repository and put into the immutable {ProjectionStates} collection.

This ensures always the same instance is being returned when accessing it.

Projections should on construction already have the state prepared, that also for internal use cases the SAME INSTANCE is always used.

void injectSaboteur(Closure $saboteur)

No description

Parameters

Closure $saboteur

Return Value

void

void killSaboteur()

No description

Return Value

void

void schemaNeedsAdditionalColumn(string $name)

No description

Parameters

string $name

Return Value

void

void dropTables()

No description

Return Value

void