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>()); }
public Builder() { conflict_evaluator_ = ConflictEvaluators.NoConflict(); ttl_ = TimeSpan.MaxValue; }