public void Retrieving_all_events_should_return_the_same_as_added() { var targetStore = new SimpleMicrosoftSqlServerEventStore(DEFAULT_CONNECTION); var id = Guid.NewGuid(); int sequenceCounter = 0; var events = new ISourcedEvent[] { new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo", 35), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter) }; var eventSource = MockRepository.GenerateMock<IEventSource>(); eventSource.Stub(e => e.Id).Return(id); eventSource.Stub(e => e.InitialVersion).Return(0); eventSource.Stub(e => e.Version).Return(events.Length); eventSource.Stub(e => e.GetUncommittedEvents()).Return(events); targetStore.Save(eventSource); var result = targetStore.GetAllEvents(id); result.Count().Should().Be(events.Length); result.First().EventIdentifier.Should().Be(events.First().EventIdentifier); }
public void Saving_event_source_while_there_is_a_newer_event_source_should_throw_concurency_exception() { var targetStore = new SimpleMicrosoftSqlServerEventStore(DEFAULT_CONNECTION); var id = Guid.NewGuid(); int sequenceCounter = 0; var events = new ISourcedEvent[] { new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo", 35), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter) }; var eventSource = MockRepository.GenerateMock<IEventSource>(); eventSource.Stub(e => e.Id).Return(id).Repeat.Twice(); eventSource.Stub(e => e.InitialVersion).Return(0).Repeat.Twice(); eventSource.Stub(e => e.Version).Return(events.Length).Repeat.Twice(); eventSource.Stub(e => e.GetUncommittedEvents()).Return(events).Repeat.Twice(); targetStore.Save(eventSource); Action act = () => targetStore.Save(eventSource); act.ShouldThrow<ConcurrencyException>(); }
public void Saving_event_source_should_succeed() { var targetStore = new SimpleMicrosoftSqlServerEventStore(DEFAULT_CONNECTION); var id = Guid.NewGuid(); int sequenceCounter = 0; var events = new ISourcedEvent[] { new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo", 35), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter), new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Name" + sequenceCounter) }; var eventSource = MockRepository.GenerateMock<IEventSource>(); eventSource.Stub(e => e.Id).Return(id); eventSource.Stub(e => e.InitialVersion).Return(0); eventSource.Stub(e => e.Version).Return(events.Length); eventSource.Stub(e => e.GetUncommittedEvents()).Return(events); targetStore.Save(eventSource); }