public async Task Funnel_Simple_Success() { var client = new KeenClient(SettingsEnv); var timeframe = QueryRelativeTimeframe.ThisHour(); 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 <IQueryTimeframe>(t => t == timeframe), It.Is <string>(t => t == "") )) .Returns(Task.FromResult(expected)); client.Queries = queryMock.Object; } var reply = (await client.QueryFunnelAsync(funnelsteps, timeframe)); Assert.NotNull(reply); Assert.NotNull(reply.Result); Assert.NotNull(reply.Steps); Assert.AreEqual(reply.Steps.Count(), 2); if (null != queryMock) { queryMock.VerifyAll(); } }