Esempio n. 1
0
        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);
            }
        }