public async Task Funnel_Simple_Success() { var client = new KeenClient(SettingsEnv); IEnumerable<FunnelStep> funnelsteps = new List<FunnelStep> { new FunnelStep { EventCollection = FunnelColA, ActorProperty = "id", }, new FunnelStep { EventCollection = FunnelColB, ActorProperty = "id" }, }; var expected = new FunnelResult { Steps = new [] { new FunnelResultStep { EventCollection = FunnelColA, }, new FunnelResultStep { EventCollection = FunnelColB, }, }, Result = new[] { 3, 2 } }; Mock<IQueries> queryMock = null; if (UseMocks) { queryMock = new Mock<IQueries>(); queryMock.Setup(m => m.Funnel( It.Is<IEnumerable<FunnelStep>>(f => f.Equals(funnelsteps)), It.Is<QueryTimeframe>(t => t == null), It.Is<string>(t => t == "") )) .Returns(Task.FromResult(expected)); client.Queries = queryMock.Object; } var reply = (await client.QueryFunnelAsync(funnelsteps)); Assert.NotNull(reply); Assert.NotNull(reply.Result); Assert.NotNull(reply.Steps); Assert.AreEqual(reply.Steps.Count(), 2); if (null != queryMock) queryMock.VerifyAll(); }
public async void Funnel_ValidFilter_Success() { var client = new KeenClient(SettingsEnv); var filters = new List<QueryFilter> { new QueryFilter("id", QueryFilter.FilterOperator.GreaterThanOrEqual(), 0) }; IEnumerable<FunnelStep> funnelsteps = new [] { new FunnelStep { EventCollection = FunnelColA, ActorProperty = "id", Filters = filters, }, new FunnelStep { EventCollection = FunnelColB, ActorProperty = "id" }, }; var expected = new FunnelResult { Steps = new [] { new FunnelResultStep { EventCollection = FunnelColA, Filters = filters }, new FunnelResultStep { EventCollection = FunnelColB, }, }, Result = new [] { 3, 2 } }; Mock<IQueries> queryMock = null; if (UseMocks) { queryMock = new Mock<IQueries>(); queryMock.Setup(m => m.Funnel( It.Is<IEnumerable<FunnelStep>>(f => f.Equals(funnelsteps)), It.Is<QueryTimeframe>(t => t == null), It.Is<string>(t => t == "") )) .Returns(Task.FromResult(expected)); client.Queries = queryMock.Object; } var reply = (await client.QueryFunnelAsync(funnelsteps)); Assert.NotNull(reply); Assert.NotNull(reply.Result); Assert.True(reply.Result.SequenceEqual(expected.Result)); Assert.NotNull(reply.Steps); Assert.AreEqual(reply.Steps.Count(), 2); if (null != queryMock) queryMock.VerifyAll(); }