public async Task IncludesOnlyCommon() { var timestamp = DateTime.UtcNow; await Task.WhenAll( userActivity.Track("bought-apple", timestamp, 1, 2, 3, 4), userActivity.Track("bought-banana", timestamp, 3, 4, 5, 6)); var apple = userActivity.Report("bought-apple", timestamp); var banana = userActivity.Report("bought-banana", timestamp); var both = apple & banana; var results = await both.Includes(0, 1, 2, 3, 4, 5, 6, 7); for (var i = 0; i < results.Length; i++) { if (i > 2 && i < 5) { Assert.True(results[i]); } else { Assert.False(results[i]); } } }
public async Task AndOnlyIncludesCommon() { var timestamp = DateTime.UtcNow; await Task.WhenAll( userActivity.Track("bought-apple", timestamp, 1, 2, 3, 4), userActivity.Track("bought-banana", timestamp, 3, 4, 5, 6), userActivity.Track("bought-mango", timestamp, 2, 4, 6)); var apple = userActivity.Report("bought-apple", timestamp); var banana = userActivity.Report("bought-banana", timestamp); var mango = userActivity.Report("bought-mango", timestamp); var appleAndBanana = apple & banana; var all = appleAndBanana & mango; var results = await all.Includes(1, 2, 3, 4, 5, 6); for (var i = 0; i < results.Length; i++) { if (i == 3) { Assert.True(results[i]); } else { Assert.False(results[i]); } } }
public async Task ReturnsSumOfExclusives() { var timestamp = DateTime.UtcNow; await Task.WhenAll( userActivity.Track("bought-apple", timestamp, 1, 2, 3, 4), userActivity.Track("bought-banana", timestamp, 3, 4, 5, 6)); var apple = userActivity.Report("bought-apple", timestamp); var banana = userActivity.Report("bought-banana", timestamp); var both = apple ^ banana; var count = await both.Count(); Assert.Equal(4, count); }
public async Task RetunsTrueIfPreviouslyStored() { var timestamp = DateTime.UtcNow; await userActivity.Track(EventName, timestamp, 97); await userActivity.Track(EventName, timestamp, 98); await userActivity.Track(EventName, timestamp, 99); var result = await userActivity.Report(EventName, timestamp) .Includes(98); Assert.True(result.First()); }
public async Task ReturnsTrackedEventsCount() { var timestamp = DateTime.UtcNow; await userActivity.Track(EventName, timestamp, 100, 204, 1002, 3); var count = await userActivity.Report(EventName, timestamp).Count(); Assert.Equal(4, count); }