public async Task DoesntAuthenticeWithoutPermission() { var coreSettings = new CoreSettings { EnableAutomaticReports = false }; var client = new AnalyticsClient(Substitute.For<IAnalyticsEndpoint>()); await client.InitializeAsync(coreSettings); Assert.False(client.IsAuthenticated); }
public async Task RecreatesAnalyticsTokenIfNecessacry() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = "cooltoken", BuddyAnalyticsUpgraded = false }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); Assert.NotEqual("cooltoken", coreSettings.AnalyticsToken); }
public async Task RecordDeviceInformation() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = null }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); endpoint.Received().RecordDeviceInformationAsync(); }
public async Task DoesntCreateUserIfAnalyticsTokenIsSaved() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = "cooltoken", BuddyAnalyticsUpgraded = true }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); endpoint.DidNotReceive().CreateUserAsync(); }
public async Task CreatesUserIfAnalyticsTokenIsNull() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = null }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); endpoint.Received().CreateUserAsync(); }
public async Task Authenticates() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = "cooltoken", BuddyAnalyticsUpgraded = true }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); Assert.True(client.IsAuthenticated); endpoint.Received().AuthenticateUserAsync(Arg.Any<string>()); }
public async Task StoresAnalyticsToken() { var coreSettings = new CoreSettings { EnableAutomaticReports = true, AnalyticsToken = null }; var client = new AnalyticsClient(Substitute.For<IAnalyticsEndpoint>()); await client.InitializeAsync(coreSettings); Assert.NotNull(coreSettings.AnalyticsToken); }
public async Task SendsReport() { var coreSettings = new CoreSettings { EnableAutomaticReports = true }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); await client.RecordErrorAsync(new Exception()); endpoint.ReceivedWithAnyArgs().RecordErrorAsync(null); }
public async Task RespectsDisabledReports() { var coreSettings = new CoreSettings { EnableAutomaticReports = false }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); await client.RecordErrorAsync(new Exception()); Assert.False(client.IsAuthenticated); endpoint.DidNotReceiveWithAnyArgs().RecordErrorAsync(null, null); }
public async Task ForcesAuthentication() { var coreSettings = new CoreSettings { EnableAutomaticReports = false }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); // This won't authenticate because automatic reports are disabled await client.InitializeAsync(coreSettings); // This will force an authentication even if automatic reports are disabled await client.RecordCrashAsync(new Exception()); Assert.True(client.IsAuthenticated); endpoint.ReceivedWithAnyArgs().RecordErrorAsync(null, null); }
public async Task UpdatesEmailIfSet() { var coreSettings = new CoreSettings { EnableAutomaticReports = true }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); await client.RecordBugReportAsync("blabla", "*****@*****.**"); endpoint.Received().UpdateUserEmailAsync("*****@*****.**"); }
public async Task IgnoresEmailIfNullOrEmpty() { var coreSettings = new CoreSettings { EnableAutomaticReports = true }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); await client.InitializeAsync(coreSettings); await client.RecordBugReportAsync("blabla"); endpoint.DidNotReceiveWithAnyArgs().UpdateUserEmailAsync(null); await client.RecordBugReportAsync("blabla", String.Empty); endpoint.DidNotReceiveWithAnyArgs().UpdateUserEmailAsync(null); await client.RecordBugReportAsync("blabla", " "); endpoint.DidNotReceiveWithAnyArgs().UpdateUserEmailAsync(null); }
public async Task ForcesAuthentication() { var coreSettings = new CoreSettings { EnableAutomaticReports = false }; var endpoint = Substitute.For<IAnalyticsEndpoint>(); var client = new AnalyticsClient(endpoint); // This won't authenticate because automatic reports are disabled await client.InitializeAsync(coreSettings); // This will force an authentication even if automatic reports are disabled await client.RecordBugReportAsync("blabla"); Assert.True(client.IsAuthenticated); endpoint.Received().RecordErrorAsync(Arg.Is<Exception>(x => x.Message == "blabla"), null); }