T
- The type of Aggregate tested in this Fixturepublic class GivenWhenThenTestFixture<T extends EventSourcedAggregateRoot> extends Object implements FixtureConfiguration<T>, TestExecutor
FixtureConfiguration
.Constructor and Description |
---|
GivenWhenThenTestFixture(Class<T> aggregateType)
Initializes a new given-when-then style test fixture for the given
aggregateType . |
Modifier and Type | Method and Description |
---|---|
CommandBus |
getCommandBus()
Returns the command bus used by this fixture.
|
EventBus |
getEventBus()
Returns the event bus used by this fixture.
|
EventStore |
getEventStore()
Returns the event store used by this fixture.
|
Repository<T> |
getRepository()
Returns the repository used by this fixture.
|
TestExecutor |
given(List<?> domainEvents)
Configures the given
domainEvents as the "given" events. |
TestExecutor |
given(Object... domainEvents)
Configures the given
domainEvents as the "given" events. |
TestExecutor |
givenCommands(List<?> commands)
Configures the given
commands as the command that will provide the "given" events. |
TestExecutor |
givenCommands(Object... commands)
Configures the given
commands as the command that will provide the "given" events. |
TestExecutor |
givenNoPriorActivity()
Indicates that no relevant activity has occurred in the past.
|
FixtureConfiguration<T> |
registerAggregateFactory(AggregateFactory<T> aggregateFactory)
Registers the given
aggregateFactory with the fixture. |
FixtureConfiguration<T> |
registerAnnotatedCommandHandler(Object annotatedCommandHandler)
Registers an
annotatedCommandHandler with this fixture. |
FixtureConfiguration<T> |
registerCommandHandler(Class<?> payloadType,
CommandHandler commandHandler)
Registers a
commandHandler to handle commands of the given commandType with the
command bus used by this fixture. |
FixtureConfiguration<T> |
registerCommandHandler(String commandName,
CommandHandler commandHandler)
Registers a
commandHandler to handle commands of the given commandType with the
command bus used by this fixture. |
FixtureConfiguration<T> |
registerInjectableResource(Object resource)
Registers a resource that is eligible for injection in handler method (e.g.
|
FixtureConfiguration<T> |
registerRepository(EventSourcingRepository<T> eventSourcingRepository)
Registers an arbitrary event sourcing
repository with the fixture. |
void |
setReportIllegalStateChange(boolean reportIllegalStateChange)
Sets whether or not the fixture should detect and report state changes that occur outside of Event Handler
methods.
|
ResultValidator |
when(Object command)
Dispatches the given command to the appropriate command handler and records all activity in the fixture for
result validation.
|
ResultValidator |
when(Object command,
Map<String,?> metaData)
Dispatches the given command and meta data to the appropriate command handler and records all
activity in the fixture for result validation.
|
public FixtureConfiguration<T> registerRepository(EventSourcingRepository<T> eventSourcingRepository)
FixtureConfiguration
repository
with the fixture. The repository must be wired
with the Event Store of this test fixture.
Should not be used in combination with FixtureConfiguration.registerAggregateFactory(org.axonframework.eventsourcing.AggregateFactory)
, as that will overwrite any
repository previously registered.registerRepository
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
eventSourcingRepository
- The repository to use in the test casepublic FixtureConfiguration<T> registerAggregateFactory(AggregateFactory<T> aggregateFactory)
FixtureConfiguration
aggregateFactory
with the fixture. The repository used by the fixture will use
the given factory to create new aggregate instances. Defaults to an Aggregate Factory that uses the no-arg
constructor to create new instances.
Should not be used in combination with FixtureConfiguration.registerRepository(org.axonframework.eventsourcing.EventSourcingRepository)
, as that will overwrite any
aggregate factory previously registered.registerAggregateFactory
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
aggregateFactory
- The Aggregate Factory to create empty aggregates withpublic FixtureConfiguration<T> registerAnnotatedCommandHandler(Object annotatedCommandHandler)
FixtureConfiguration
annotatedCommandHandler
with this fixture. This will register this command handler
with the command bus used in this fixture.registerAnnotatedCommandHandler
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
annotatedCommandHandler
- The command handler to register for this testpublic FixtureConfiguration<T> registerCommandHandler(Class<?> payloadType, CommandHandler commandHandler)
FixtureConfiguration
commandHandler
to handle commands of the given commandType
with the
command bus used by this fixture.registerCommandHandler
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
payloadType
- The type of command to register the handler forcommandHandler
- The handler to registerpublic FixtureConfiguration<T> registerCommandHandler(String commandName, CommandHandler commandHandler)
FixtureConfiguration
commandHandler
to handle commands of the given commandType
with the
command bus used by this fixture.registerCommandHandler
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
commandName
- The name of the command to register the handler forcommandHandler
- The handler to registerpublic FixtureConfiguration<T> registerInjectableResource(Object resource)
FixtureConfiguration
@CommandHandler
, @EventSourcingHandler
and @EventHandler
. These resource must be
registered before registering any command handler.registerInjectableResource
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
resource
- The resource eligible for injectionpublic TestExecutor given(Object... domainEvents)
FixtureConfiguration
domainEvents
as the "given" events. These are the events returned by the event
store when an aggregate is loaded.
If an item in the given domainEvents
implements Message
, the
payload and meta data from that message are copied into a newly created Domain Event Message. Otherwise, a
Domain Event Message with the item as payload and empty meta data is created.given
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
domainEvents
- the domain events the event store should returnpublic TestExecutor givenNoPriorActivity()
FixtureConfiguration
FixtureConfiguration.given(java.util.List)
method.givenNoPriorActivity
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
public TestExecutor given(List<?> domainEvents)
FixtureConfiguration
domainEvents
as the "given" events. These are the events returned by the event
store when an aggregate is loaded.
If an item in the list implements Message
, the payload and meta data from that
message are copied into a newly created Domain Event Message. Otherwise, a Domain Event Message with the item
as payload and empty meta data is created.given
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
domainEvents
- the domain events the event store should returnpublic TestExecutor givenCommands(Object... commands)
FixtureConfiguration
commands
as the command that will provide the "given" events. The commands are
executed, and the resulting stored events are captured.givenCommands
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
commands
- the domain events the event store should returnpublic TestExecutor givenCommands(List<?> commands)
FixtureConfiguration
commands
as the command that will provide the "given" events. The commands are
executed, and the resulting stored events are captured.givenCommands
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
commands
- the domain events the event store should returnpublic ResultValidator when(Object command)
TestExecutor
command
is a CommandMessage
instance, it will be dispatched as-is. Any other object will
cause the given command
to be wrapped in a CommandMessage
as its payload.when
in interface TestExecutor
command
- The command to executepublic ResultValidator when(Object command, Map<String,?> metaData)
TestExecutor
command
is a CommandMessage
instance, it will be dispatched as-is, with given
additional metaData
. Any other object will cause the given command
to be wrapped in a
CommandMessage
as its payload.when
in interface TestExecutor
command
- The command to executemetaData
- The meta data to attach to thepublic void setReportIllegalStateChange(boolean reportIllegalStateChange)
FixtureConfiguration
setReportIllegalStateChange
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
reportIllegalStateChange
- whether or not to detect and report state changes outside of Event Handler
methods.public CommandBus getCommandBus()
FixtureConfiguration
getCommandBus
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
public EventBus getEventBus()
FixtureConfiguration
ResultValidator
operations.getEventBus
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
public EventStore getEventStore()
FixtureConfiguration
getEventStore
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
public Repository<T> getRepository()
FixtureConfiguration
getRepository
in interface FixtureConfiguration<T extends EventSourcedAggregateRoot>
Copyright © 2010-2014. All Rights Reserved.