public void CanSaveMultipleEvents() { var aggregateId = Guid.NewGuid(); var eventsIn = new Event[] { new TestEvent("Number 1"), new TestEvent("Number 2") }; var es = _kernel.Get<IEventStore>(); es.SaveEvents(aggregateId, eventsIn, -1); var eventsOut = es.GetEventsForAggregate(aggregateId); eventsOut.Count.Should().Be.EqualTo(eventsIn.Count()); }
public void ConcurrencyViolationThrowsConcurrencyException() { var aggregateId = Guid.NewGuid(); var eventsIn = new Event[] { new TestEvent("Number 1"), new TestEvent("Number 2"), new TestEvent("Number 3"), }; var es = _kernel.Get<IEventStore>(); es.SaveEvents(aggregateId, eventsIn, -1); eventsIn = new Event[] { new TestEvent("Number 4") }; Assert.Throws<ConcurrencyException>( () => es.SaveEvents(aggregateId, eventsIn, 0)); }
public void FirstEventIsVersionZero() { var aggregateId = Guid.NewGuid(); var eventsIn = new Event[] { new TestEvent("Number 1"), }; var es = _kernel.Get<IEventStore>(); es.SaveEvents(aggregateId, eventsIn, -1); var eventsOut = es.GetEventsForAggregate(aggregateId); eventsOut.Single().Version.Should().Be.EqualTo(0); }
public void VersionsAreSequential() { var aggregateId = Guid.NewGuid(); var eventsIn = new Event[] { new TestEvent("Number 1"), new TestEvent("Number 2"), new TestEvent("Number 3"), }; var es = _kernel.Get<IEventStore>(); es.SaveEvents(aggregateId, eventsIn, -1); var eventsOut = es.GetEventsForAggregate(aggregateId); eventsOut[0].Version.Should().Be.EqualTo(0); eventsOut[1].Version.Should().Be.EqualTo(1); eventsOut[2].Version.Should().Be.EqualTo(2); }