public async Task Query_SimpleFunnel_Success() { var queryParameters = new FunnelParameters() { Steps = new FunnelStep[] { new FunnelStep() { EventCollection = "signed up", ActorProperty = "visitor.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, new FunnelStep() { EventCollection = "completed profile", ActorProperty = "user.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, new FunnelStep() { EventCollection = "referred user", ActorProperty = "user.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, } }; string responseJson = @"{ ""result"": [ 3, 1, 0 ], ""steps"": [ { ""actor_property"": ""visitor.guid"", ""event_collection"": ""signed up"", ""timeframe"": ""this_7_days"" }, { ""actor_property"": ""user.guid"", ""event_collection"": ""completed profile"", ""timeframe"": ""this_7_days"" }, { ""actor_property"": ""user.guid"", ""event_collection"": ""referred user"", ""timeframe"": ""this_7_days"" } ] }"; var expectedResponse = JObject.Parse(responseJson); var client = CreateQueryTestKeenClient(queryParameters, expectedResponse); var actualResults = await client.Queries.Funnel( queryParameters.Steps); var expectedResults = expectedResponse["result"].Values <int>(); Assert.That(actualResults.Result, Is.EquivalentTo(expectedResults)); var expectedSteps = queryParameters.Steps.Select((step) => new FunnelResultStep() { EventCollection = step.EventCollection, ActorProperty = step.ActorProperty, Timeframe = step.Timeframe }); Assert.That(actualResults.Steps, Is.EquivalentTo(expectedSteps)); }
public async Task Query_SimpleFunnel_Success() { var queryParameters = new FunnelParameters() { Steps = new FunnelStep[] { new FunnelStep() { EventCollection = "signed up", ActorProperty = "visitor.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, new FunnelStep() { EventCollection = "completed profile", ActorProperty = "user.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, new FunnelStep() { EventCollection = "referred user", ActorProperty = "user.guid", Timeframe = QueryRelativeTimeframe.ThisNDays(7) }, } }; string responseJson = @"{ ""result"": [ 3, 1, 0 ], ""steps"": [ { ""actor_property"": ""visitor.guid"", ""event_collection"": ""signed up"", ""timeframe"": ""this_7_days"" }, { ""actor_property"": ""user.guid"", ""event_collection"": ""completed profile"", ""timeframe"": ""this_7_days"" }, { ""actor_property"": ""user.guid"", ""event_collection"": ""referred user"", ""timeframe"": ""this_7_days"" } ] }"; var expectedResponse = JObject.Parse(responseJson); var client = CreateQueryTestKeenClient(queryParameters, expectedResponse); var actualResults = await client.Queries.Funnel( queryParameters.Steps); var expectedResults = expectedResponse["result"]; Assert.AreEqual(expectedResults.Count(), actualResults.Result.Count()); var actualEnumerator = actualResults.Result.GetEnumerator(); foreach (var expected in expectedResults) { actualEnumerator.MoveNext(); var actual = actualEnumerator.Current; // Validate the result is correct Assert.AreEqual(expected.Value <int>(), actual); } }