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)); }
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")); }