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);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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));
        }
                          );
    }