mardi 18 juillet 2017

Axon Testing: Missing Context

In an Axon-SpringBoot App I have an aggregate that uses an injected DAO in some of its command handlers.

For instance:

@Aggregate
class MyAggregate {

    @CommandHandler
    public MyAggregate (CreateMyAggregateCommand command, @Autowired MyAggregateDao dao) {

          final SomeProperty = command.getSomePoprtery();

          if (dao.findBySomeProperty(someProperty) == null) {
               AggregateLifeCycle.apply(
                     new MyAggregateCreatedEvent(command.getIdentifier(),
                                                 someProperty);
          } else {
               // Don't create, already exits with some property
               // report ...
          }
    }

}

A standard test like

@Test
void creationSucceeds () {

    aggregateTestFixture = new AggregateTestFixture<>(MyAggregate.class);

    final CreateMyAggregateCommand command = new CreateMyAggregateCommand(...);
    final MyAggregateCreatedEvent = new MyAggregateCreatedEvent(...);

    aggregateTestFixture
            .givenNoPriorActivity()
            .when(command)
            .expectEvents(event);

}

fails with:

org.axonframework.test.FixtureExecutionException: No resource of type 
[com.xmpl.MyAggregateDao] has been registered. It is required 
for one of the handlers being executed.

How can I provide a test implementation?

Aucun commentaire:

Enregistrer un commentaire