public void Retrieving_all_events_should_return_the_same_as_added() { var id = Guid.NewGuid(); var sequenceCounter = 0; var stream = new UncommittedEventStream(Guid.NewGuid()); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo", 35), new Version(1, 0))); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged("Name" + sequenceCounter), new Version(1, 0))); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged("Name" + sequenceCounter), new Version(1, 0))); _store.Store(stream); var result = _store.ReadFrom(id, long.MinValue, long.MaxValue); result.Count().Should().Be(stream.Count()); result.First().EventIdentifier.Should().Be(stream.First().EventIdentifier); //TODO: var streamList = stream.ToList(); var resultList = result.ToList(); for (int i = 0; i < resultList.Count; i++) { Assert.IsTrue(AreEqual(streamList[i], resultList[i])); } }
public void Retrieving_all_events_should_return_the_same_as_added() { var id=Guid.NewGuid(); var sequenceCounter=0; var stream = new UncommittedEventStream(Guid.NewGuid()); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo", 35), new Version(1, 0))); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged("Name" + sequenceCounter), new Version(1, 0))); stream.Append( new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged("Name" + sequenceCounter), new Version(1, 0))); _store.Store(stream); var result=_store.ReadFrom(id, long.MinValue, long.MaxValue); result.Count().Should().Be(stream.Count()); result.First().EventIdentifier.Should().Be(stream.First().EventIdentifier); //TODO: var streamList = stream.ToList(); var resultList = result.ToList(); for (int i = 0; i < resultList.Count; i++) { Assert.IsTrue(AreEqual(streamList[i], resultList[i])); } }
/// <summary>Persists the <paramref name="eventStream"/> in the store as a single and atomic commit.</summary> /// <exception cref="ConcurrencyException">Occurs when there is already a newer version of the event provider stored in the event store.</exception> /// <param name="eventStream">The <see cref="UncommittedEventStream"/> to commit.</param> public void Store(UncommittedEventStream eventStream) { if (!eventStream.Any()) { return; } using (var connection = new SqlConnection(_connectionString)) { connection.Open(); try { using (var transaction = connection.BeginTransaction()) { try { if (eventStream.HasSingleSource) { var firstEvent = eventStream.First(); var newVersion = firstEvent.InitialVersionOfEventSource + eventStream.Count(); StoreEventsFromSource(eventStream.SourceId, newVersion, eventStream, transaction); } else { StoreMultipleSources(eventStream, transaction); } transaction.Commit(); } catch { transaction.Rollback(); throw; } } } finally { connection.Close(); } } }
public void Retrieving_all_events_should_return_the_same_as_added() { var targetStore = new RavenDBEventStore(_documentStore); var id = Guid.NewGuid(); int sequenceCounter = 0; var events = new UncommittedEventStream(Guid.NewGuid()); events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo", 35), new Version(1, 0))); events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged( "Name" + sequenceCounter), new Version(1, 0))); events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged( "Name" + sequenceCounter), new Version(1, 0))); events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged( "Name" + sequenceCounter), new Version(1, 0))); targetStore.Store(events); var result = targetStore.ReadFrom(id, long.MinValue, long.MaxValue); result.Count().Should().Be(events.Count()); result.First().EventIdentifier.Should().Be(events.First().EventIdentifier); var streamList = events.ToList(); var resultList = result.ToList(); for (int i = 0; i < resultList.Count; i++) { Assert.IsTrue(AreEqual(streamList[i], resultList[i])); } }
/// <summary>Persists the <paramref name="eventStream"/> in the store as a single and atomic commit.</summary> /// <exception cref="ConcurrencyException">Occurs when there is already a newer version of the event provider stored in the event store.</exception> /// <param name="eventStream">The <see cref="UncommittedEventStream"/> to commit.</param> public void Store(UncommittedEventStream eventStream) { if (!eventStream.Any()) return; using (var connection = new SqlConnection(_connectionString)) { connection.Open(); try { using (var transaction = connection.BeginTransaction()) { try { if (eventStream.HasSingleSource) { var firstEvent = eventStream.First(); var newVersion = firstEvent.InitialVersionOfEventSource + eventStream.Count(); StoreEventsFromSource(eventStream.SourceId, newVersion, eventStream, transaction); } else { StoreMultipleSources(eventStream, transaction); } transaction.Commit(); } catch { transaction.Rollback(); throw; } } } finally { connection.Close(); } } }