示例#1
0
        public async Task TestServerErrorWhileDispatching()
        {
            analytics.TrackPage("Main");

            var receivedData = await PiwikMocker.SubmitAndReceive(analytics, url, statusCode : 500);

            Assert.That(analytics.UnsentActions, Is.EqualTo(1));

            receivedData = await PiwikMocker.SubmitAndReceive(analytics, url);

            await analytics.Dispatch();

            Assert.That(analytics.UnsentActions, Is.EqualTo(0));
        }
示例#2
0
        public static async Task <string> SubmitAndReceive(PiwikAnalytics analytics, string url, int statusCode = 200)
        {
            var tokenSource = new CancellationTokenSource();

            var receivedData = PiwikMocker.Receive(url, tokenSource.Token, statusCode);
            var dispatched   = await analytics.Dispatch();

            if (dispatched)
            {
                return(await receivedData);
            }

            tokenSource.Cancel();
            return("");
        }
        public async Task TestTrackingPageVisits()
        {
            analytics.TrackPage("Main");
            analytics.TrackPage("LevelA / Sub");

            var receivedData = MockedPiwikServer(url);
            await analytics.Dispatch();

            Assert.That(analytics.UnsentActions, Is.EqualTo(0));

            var json = JObject.Parse(await receivedData);
            var main = json["requests"][0].ToString();

            Assert.That(main, Does.Contain("action_name=Main"));
            var sub = json["requests"][1].ToString();

            Assert.That(sub, Does.Contain("action_name=LevelA+%2f+Sub"));
        }