public async void Guards() { var @event = new ProductSale(); var eventKey = "productSale"; var exception = await Assert.ThrowsAsync <ArgumentException>( () => collection.AddEventAsync(string.Empty, eventKey, @event) ); Assert.Equal("key", exception.ParamName); exception = await Assert.ThrowsAsync <ArgumentNullException>( () => collection.AddEventAsync(null, eventKey, @event) ); Assert.Equal("key", exception.ParamName); exception = await Assert.ThrowsAsync <ArgumentException>( () => collection.AddEventAsync(minivanKey, string.Empty, @event) ); Assert.Equal("eventType", exception.ParamName); exception = await Assert.ThrowsAsync <ArgumentNullException>( () => collection.AddEventAsync(minivanKey, null, @event) ); Assert.Equal("eventType", exception.ParamName); exception = await Assert.ThrowsAsync <ArgumentNullException>( () => collection.AddEventAsync <object>(minivanKey, eventKey, null) ); Assert.Equal("event", exception.ParamName); }
public async void DeleteSuccess() { var eventType = Guid.NewGuid().ToString(); var sale = new ProductSale { Amount = 25000.00M, Notes = "Sold for a song." }; var eventMetadata = await collection.AddEventAsync(minivanKey, eventType, sale); await collection.DeleteEventAsync(minivanKey, eventType, eventMetadata.Timestamp, eventMetadata.Ordinal); var events = collection.GetEventsAsync <ProductSale>(minivanKey, eventType); Assert.Empty(events.Result); }
public async void ReturnsAddedEvents() { var sales = new[] { new ProductSale() { Amount = 25000.00M, Notes = "Hot van!" }, new ProductSale() { Amount = 22000.00M, Notes = "Meh" }, new ProductSale() { Amount = 15000.00M, Notes = "What a deal!" } }; var eventType = Guid.NewGuid().ToString(); foreach (var sale in sales) { await collection.AddEventAsync(minivanKey, eventType, sale); } var results = await collection.GetEventsAsync <ProductSale>(minivanKey, eventType); Assert.Equal(3, results.Count); Assert.Collection(results, r => Assert.Equal(sales[2].Amount, r.Amount), r => Assert.Equal(sales[1].Amount, r.Amount), r => Assert.Equal(sales[0].Amount, r.Amount) ); var now = DateTimeOffset.UtcNow; Assert.Collection(results.Items, i => { Assert.True(i.PathMetadata.Ordinal > 0); Assert.True(i.Ordinal > 0); Assert.NotNull(i.PathMetadata.OrdinalString); Assert.InRange(i.PathMetadata.Timestamp, now.AddHours(-1), now.AddHours(1)); Assert.InRange(i.Timestamp, now.AddHours(-1), now.AddHours(1)); }, i => { Assert.True(i.PathMetadata.Ordinal > 0); Assert.True(i.Ordinal > 0); Assert.NotNull(i.PathMetadata.OrdinalString); Assert.InRange(i.PathMetadata.Timestamp, now.AddHours(-1), now.AddHours(1)); Assert.InRange(i.Timestamp, now.AddHours(-1), now.AddHours(1)); }, i => { Assert.True(i.PathMetadata.Ordinal > 0); Assert.True(i.Ordinal > 0); Assert.NotNull(i.PathMetadata.OrdinalString); Assert.InRange(i.PathMetadata.Timestamp, now.AddHours(-1), now.AddHours(1)); Assert.InRange(i.Timestamp, now.AddHours(-1), now.AddHours(1)); } ); }