public Task TestTrackEventWithDimension() { var mockController = new Mock<IParseAnalyticsController>(); var mockCorePlugins = new Mock<IParseCorePlugins>(); var mockCurrentUserController = new Mock<IParseCurrentUserController>(); mockCorePlugins .Setup(corePlugins => corePlugins.CurrentUserController) .Returns(mockCurrentUserController.Object); mockCurrentUserController .Setup(controller => controller.GetCurrentSessionTokenAsync(It.IsAny<CancellationToken>())) .Returns(Task.FromResult("sessionToken")); ParseAnalyticsPlugins plugins = new ParseAnalyticsPlugins(); plugins.AnalyticsController = mockController.Object; plugins.CorePlugins = mockCorePlugins.Object; ParseAnalyticsPlugins.Instance = plugins; var dimensions = new Dictionary<string, string>() { { "facebook", "hq" } }; return ParseAnalytics.TrackEventAsync("SomeEvent", dimensions).ContinueWith(t => { Assert.IsFalse(t.IsFaulted); Assert.IsFalse(t.IsCanceled); mockController.Verify(obj => obj.TrackEventAsync(It.Is<string>(eventName => eventName == "SomeEvent"), It.Is<IDictionary<string, string>>(dict => dict != null && dict.Count == 1), It.IsAny<string>(), It.IsAny<CancellationToken>()), Times.Exactly(1)); }); }
public Task TestTrackAppOpened() { var mockController = new Mock<IParseAnalyticsController>(); var mockCorePlugins = new Mock<IParseCorePlugins>(); var mockCurrentUserController = new Mock<IParseCurrentUserController>(); mockCorePlugins .Setup(corePlugins => corePlugins.CurrentUserController) .Returns(mockCurrentUserController.Object); mockCurrentUserController .Setup(controller => controller.GetCurrentSessionTokenAsync(It.IsAny<CancellationToken>())) .Returns(Task.FromResult("sessionToken")); ParseAnalyticsPlugins plugins = new ParseAnalyticsPlugins(); plugins.AnalyticsController = mockController.Object; plugins.CorePlugins = mockCorePlugins.Object; ParseAnalyticsPlugins.Instance = plugins; return ParseAnalytics.TrackAppOpenedAsync().ContinueWith(t => { Assert.IsFalse(t.IsFaulted); Assert.IsFalse(t.IsCanceled); mockController.Verify(obj => obj.TrackAppOpenedAsync(It.Is<string>(pushHash => pushHash == null), It.IsAny<string>(), It.IsAny<CancellationToken>()), Times.Exactly(1)); }); }