Exemplo n.º 1
0
        public void should_throw_concurrency_exception_if_events_conflict()
        {
            var storage = Mock.Create <IEventStorage>();

            var id = Guid.Empty;

            Mock
            .Arrange(() => storage.GetEventsForAggregate(id, serializer_, 1))
            .Returns(new List <Event> {
                new Modified()
            });

            Mock
            .Arrange(() => storage
                     .SaveEvents(Arg.IsAny <Guid>(), Arg.IsAny <ICollection <Event> >(), 1,
                                 serializer_))
            .Throws(new WrongExpectedVersionException(string.Empty));

            var repository = new Repository <DummyAggregate>(storage, serializer_,
                                                             AggregateFactories.FromFunc(guid => new DummyAggregate(guid)),
                                                             ConflictEvaluators.FromFunc((@event, event1) => true));
            var aggregate = new DummyAggregate(Guid.Empty);

            Assert.That(() => repository.Save(aggregate, 1),
                        Throws.TypeOf <ConcurrencyException>());
        }
Exemplo n.º 2
0
 public Builder()
 {
     conflict_evaluator_ = ConflictEvaluators.NoConflict();
     ttl_ = TimeSpan.MaxValue;
 }