protected async Task Given_No_Snapshots_For_A_Stream_When_Reading_A_Snapshot_Then_An_Error_Is_Raised(IEventStoreProvider eventStoreProvider) { // Arrange string eventStreamId = Guid.NewGuid().ToEventStreamIdFormattedString(); // Act // Assert await AssertExtensions.ThrowsAsync <EventStreamNotFoundException>( async() => await eventStoreProvider.ReadSnapshotAsync(eventStreamId).ConfigureAwait(false)).ConfigureAwait(false); }
protected async Task Given_A_Valid_Snapshot_When_The_Snapshot_Is_Added_Then_The_Snapshot_Can_Be_Read_And_The_Retrieved_Snapshot_Has_The_Correct_Metadata(IEventStoreProvider eventStoreProvider) { // Arrange string eventStreamId = Guid.NewGuid().ToEventStreamIdFormattedString(); string snapshotStreamId = string.Format(CultureInfo.InvariantCulture, "{0}-snapshot", eventStreamId); Guid snapshotId = Guid.NewGuid(); const int streamRevision = 3; // Act eventStoreProvider.AppendEvents(eventStreamId, new object(), new object(), new object()); await eventStoreProvider.CommitEventsAsync(eventStreamId, ExpectedStreamRevision.New).ConfigureAwait(false); EventStoreSnapshot eventStoreSnapshotToBeWritten = new EventStoreSnapshot(snapshotId, streamRevision, new object()); await eventStoreProvider.AddSnapshotAsync(eventStreamId, snapshotStreamId, eventStoreSnapshotToBeWritten).ConfigureAwait(false); EventStoreSnapshot eventStoreSnapshotThatWasRead = await eventStoreProvider.ReadSnapshotAsync(snapshotStreamId).ConfigureAwait(false); // Assert Assert.NotNull(eventStoreSnapshotThatWasRead); Assert.Equal(snapshotId, eventStoreSnapshotThatWasRead.SnapshotId); Assert.Equal(streamRevision, eventStoreSnapshotThatWasRead.StreamRevision); Assert.Equal(3, eventStoreSnapshotThatWasRead.Headers.Count); }