Exemple #1
0
        public void WhenEntityExposesEvent_ThenRepositoryPublishesIt()
        {
            var bus      = new Mock <ICommandBus>();
            var commands = new List <ICommand>();

            bus.Setup(x => x.Send(It.IsAny <IEnumerable <Envelope <ICommand> > >()))
            .Callback <IEnumerable <Envelope <ICommand> > >(x => commands.AddRange(x.Select(e => e.Body)));

            var command = new TestCommand();

            using (var context = new TestOrmSagaRepository(bus.Object))
            {
                var aggregate = new OrmTestSaga(Guid.NewGuid());
                aggregate.AddCommand(command);
                context.Save(aggregate);
            }

            Assert.Equal(1, commands.Count);
            Assert.True(commands.Contains(command));
        }