public async Task DeletedDocumentsAppearInChangeFeed(bool partitioned) { // Arrange var partition = partitioned ? Guid.NewGuid().ToString() : null; var client = await CosmosSetup.GetClient(this.Database, this.Collection, partitioned : partitioned); var store = new EventStore(client, this.Database, this.Collection, partition); var streamId = Guid.NewGuid().ToString(); var events = TestSetup.GetEvents(10); await store.WriteToStream(streamId, events); await store.CreateSnapshot(streamId, 2, 2); await store.CreateSnapshot(streamId, 4, 4); await store.CreateSnapshot(streamId, 8, 8); // Act var token = await this.GetCurrentChangeFeedToken(client, partition); await store.DeleteStream(streamId, (ulong)events.Length); // Assert var documents = await this.LoadChangeFeed(client, partition, token); Assert.AreEqual(1 + events.Length + 3, documents.Count); foreach (var document in documents) { Assert.IsTrue(document.Deleted); } }
public void DeleteAllStreamCommits() { var streamId = Guid.NewGuid(); EventStore.Save(new Commit(Guid.NewGuid(), streamId, 1, HeaderCollection.Empty, EventCollection.Empty)); EventStore.Save(new Commit(Guid.NewGuid(), streamId, 2, HeaderCollection.Empty, EventCollection.Empty)); EventStore.DeleteStream(streamId); Assert.Equal(0, EventStore.GetStream(streamId).Count()); }
public void DoNotDeleteOtherStreams() { var streamId = Guid.NewGuid(); var alternateStreamid = Guid.NewGuid(); EventStore.Save(new Commit(Guid.NewGuid(), streamId, 1, HeaderCollection.Empty, EventCollection.Empty)); EventStore.Save(new Commit(Guid.NewGuid(), alternateStreamid, 1, HeaderCollection.Empty, EventCollection.Empty)); EventStore.DeleteStream(streamId); Assert.Equal(1, EventStore.GetStream(alternateStreamid).Count()); }