protected override void BeforeEach() { _analyticsOptions = new AnalyticsOptions(); PackageMock.Setup(p => p.AnalyticsSettings).Returns(_analyticsOptions); _promptAnalyticsMock = new Mock <Func <bool> >(); EventsReporterWrapper.PromptAnalyticsOptIn = _promptAnalyticsMock.Object; }
public void Test_GetFormValuesAsJson() { var options = new AnalyticsOptions() { BucketName = "default", ScopeName = "scope1", QueryContext = "queryctx", } .Parameter("par1") .Parameter("par2") .Parameter("namedpar1", "namedpar1val") .Parameter("namedpar2", "namedpar2val") .Raw("raw1", "val1") .Raw("raw2", "val2") .Readonly(true) .ClientContextId("cctxid") .Timeout(TimeSpan.FromSeconds(10)) .ScanConsistency(AnalyticsScanConsistency.RequestPlus) .Priority(true); var json = options.GetFormValuesAsJson("SELECT * FROM default"); var expected = "{\"statement\":\"SELECT * FROM default;\",\"timeout\":\"10000ms\",\"client_context_id\":\"cctxid\",\"query_context\":\"queryctx\",\"namedpar1\":\"namedpar1val\",\"namedpar2\":\"namedpar2val\",\"raw1\":\"val1\",\"raw2\":\"val2\",\"args\":[\"par1\",\"par2\"]}"; Assert.Contains(expected, json); }
public async Task Test_Analytics(string file, HttpStatusCode httpStatusCode, Type errorType, bool readOnly) { var retryOrchestrator = CreateRetryOrchestrator(); using (var response = ResourceHelper.ReadResourceAsStream(@"Documents\Analytics\" + file)) { var buffer = new byte[response.Length]; response.Read(buffer, 0, buffer.Length); var responses = GetResponses(20, buffer, httpStatusCode); var client = MockedHttpClients.AnalyticsClient(responses); using var cts = new CancellationTokenSource(); cts.CancelAfter(1000); var statement = "SELECT * FROM `bar`;"; var options = new AnalyticsOptions(); options.Timeout(TimeSpan.FromSeconds(1000)); options.CancellationToken(cts.Token); options.Readonly(readOnly); async Task <IAnalyticsResult <dynamic> > Send() { var client1 = client; return(await client1.QueryAsync <dynamic>(statement, options)); } var meter = NoopMeter.Instance; await AssertThrowsIfExpectedAsync(errorType, () => retryOrchestrator.RetryAsync(Send, AnalyticsRequest.Create(statement, meter.ValueRecorder("analytics"), options))); } }
public void Can_set_statement() { // set statement using constructor var options = new AnalyticsOptions(); var formValues = options.GetFormValues(Statement); Assert.Equal(Statement, formValues["statement"]); var json = JsonConvert.DeserializeObject <dynamic>( options.GetFormValuesAsJson(Statement) ); Assert.Equal(Statement, json.statement.Value); // set statement using method const string statement = "SELECT 1 FROM `datset`;"; formValues = options.GetFormValues(statement); Assert.Equal(statement, formValues["statement"]); json = JsonConvert.DeserializeObject <dynamic>( options.GetFormValuesAsJson(statement) ); Assert.Equal(statement, json.statement.Value); }
public void TestSetDialogShown() { var objectUnderTest = new AnalyticsOptions(); objectUnderTest.DialogShown = true; Assert.IsTrue(objectUnderTest.DialogShown); }
public void TestSetOptIn() { var objectUnderTest = new AnalyticsOptions(); objectUnderTest.OptIn = true; Assert.IsTrue(objectUnderTest.OptIn); }
public void When_parameters_empty_GetParametersFromJson_returns_empty_object() { var options = new AnalyticsOptions(); var json = options.GetParametersAsJson(); Assert.Equal("{}", json); }
public void TestSetInstalledVersion() { const string testVersionString = "test-version-string"; var objectUnderTest = new AnalyticsOptions(); objectUnderTest.InstalledVersion = testVersionString; Assert.AreEqual(testVersionString, objectUnderTest.InstalledVersion); }
internal static IRequestSpan WithOperationId(this IRequestSpan span, AnalyticsOptions request) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, request.ClientContextIdValue ?? Guid.NewGuid().ToString()); } return(span); }
public void TestSetClientId() { const string testClientId = "test-client-id-string"; var objectUnderTest = new AnalyticsOptions(); objectUnderTest.ClientId = testClientId; Assert.AreEqual(testClientId, objectUnderTest.ClientId); }
public void TestInitialConditions() { var objectUnderTest = new AnalyticsOptions(); Assert.IsFalse(objectUnderTest.OptIn); Assert.IsFalse(objectUnderTest.DialogShown); Assert.IsNull(objectUnderTest.ClientId); Assert.IsNull(objectUnderTest.InstalledVersion); }
public void Can_fetch_JSON_from_PositionalParameters() { var options = new AnalyticsOptions(); options.Parameter("thevalue"); var json = options.GetParametersAsJson(); Assert.Equal("[\"thevalue\"]", json); }
public void Can_fetch_JSON_from_NamedParameters() { var options = new AnalyticsOptions(); options.Parameter("theykey", "thevalue"); var json = options.GetParametersAsJson(); Assert.Equal("{\"theykey\":\"thevalue\"}", json); }
public void Request_auto_generates_context_and_request_Ids() { var options = new AnalyticsOptions(); options.ClientContextId(Guid.NewGuid().ToString()); var formValues = options.GetFormValues(Statement); var requestId = formValues["client_context_id"].ToString(); Assert.NotEmpty(requestId); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan, AnalyticsOptions request) { var childSpan = DispatchSpan(parentSpan); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, request.ClientContextIdValue ?? Guid.NewGuid().ToString()); } return(childSpan); }
public void Request_ID_changes_on_each_request() { var options = new AnalyticsOptions(); var formValues = options.GetFormValues(Statement); var clientContextId1 = formValues["client_context_id"].ToString(); formValues = options.GetFormValues(Statement); // re-trigger as if going to re-submited the query var clientContextId2 = formValues["client_context_id"].ToString(); Assert.NotEqual(clientContextId1, clientContextId2); }
public void Can_set_priority() { var options = new AnalyticsOptions(); Assert.Equal(0, options.PriorityValue); options.Priority(true); Assert.Equal(-1, options.PriorityValue); options.Priority(false); Assert.Equal(0, options.PriorityValue); }
public void Can_set_timeout() { var options = new AnalyticsOptions().Timeout(TimeSpan.FromSeconds(15)); var formValues = options.GetFormValues(Statement); Assert.Equal("15000ms", formValues["timeout"]); var jsonDocument = JsonDocument.Parse(options.GetFormValuesAsJson(Statement)); Assert.Equal("15000ms", jsonDocument.RootElement.GetProperty("timeout").GetString()); }
internal AnalyticsOptions CreateAnalyticsOptions() { var options = new AnalyticsOptions() .CancellationToken(TokenValue); if (TimeoutValue.HasValue) { options.Timeout(TimeoutValue.Value); } return(options); }
public void TestSaveSettingsSettingsInitalizesClientId() { var objectUnderTest = new AnalyticsOptions { OptIn = true, ClientId = null }; objectUnderTest.SaveSettingsToStorage(); Assert.IsNotNull(objectUnderTest.ClientId); }
/// <summary> /// Ensures that the opt-in dialog is shown to the user. /// </summary> public static void EnsureAnalyticsOptIn() { AnalyticsOptions settings = GoogleCloudExtensionPackage.Instance.AnalyticsSettings; if (!settings.DialogShown) { Debug.WriteLine("Showing the opt-in dialog."); settings.OptIn = PromptAnalyticsOptIn(); settings.DialogShown = true; settings.SaveSettingsToStorage(); } }
public void TestSaveSettingsSettingsDiablesClientId() { var objectUnderTest = new AnalyticsOptions { ClientId = "test-client-id-string", OptIn = false }; objectUnderTest.SaveSettingsToStorage(); Assert.IsNull(objectUnderTest.ClientId); }
public void Default_timeout_is_75_seconds() { // sets default timeout to 75 seconds var options = new AnalyticsOptions().Timeout(TimeSpan.FromSeconds(75)); var formValues = options.GetFormValues(Statement); Assert.Equal("75000ms", formValues["timeout"]); var jsonDocument = JsonDocument.Parse(options.GetFormValuesAsJson(Statement)); Assert.Equal("75000ms", jsonDocument.RootElement.GetProperty("timeout").GetString()); }
public void Statement_is_cleaned(string statement) { const string expected = "SELECT 1;"; var options = new AnalyticsOptions(); var formValues = options.GetFormValues(statement); Assert.Equal(expected, formValues["statement"]); var jsonDocument1 = JsonDocument.Parse(options.GetFormValuesAsJson(statement)); Assert.Equal(expected, jsonDocument1.RootElement.GetProperty("statement").GetString()); }
/// <summary> /// Ensures that the opt-in dialog is shown to the user. /// </summary> public static void EnsureAnalyticsOptIn() { IGoogleCloudExtensionPackage package = GoogleCloudExtensionPackage.Instance; AnalyticsOptions settings = package.GeneralSettings; if (!settings.DialogShown) { Debug.WriteLine("Showing the opt-in dialog."); settings.OptIn = package.UserPromptService.PromptUser(new AnalyticsOptInWindowContent()); settings.DialogShown = true; settings.SaveSettingsToStorage(); } }
public void Can_set_timeout() { var options = new AnalyticsOptions().Timeout(TimeSpan.FromSeconds(15)); var formValues = options.GetFormValues(Statement); Assert.Equal("15000ms", formValues["timeout"]); var json = JsonConvert.DeserializeObject <dynamic>( options.GetFormValuesAsJson(Statement) ); Assert.Equal("15000ms", json.timeout.Value); }
public void Can_set_client_context_id() { var options = new AnalyticsOptions(); options.ClientContextId("testing"); options.ClientContextId(Guid.NewGuid().ToString()); var formValues = options.GetFormValues(Statement); var contextId = formValues["client_context_id"].ToString(); Assert.NotEmpty(contextId); Assert.True(Guid.TryParse(contextId, out Guid result)); }
public void Default_timeout_is_75_seconds() { // sets default timeout to 75 seconds var options = new AnalyticsOptions().Timeout(TimeSpan.FromSeconds(75)); var formValues = options.GetFormValues(Statement); Assert.Equal("75000ms", formValues["timeout"]); var json = JsonConvert.DeserializeObject <dynamic>( options.GetFormValuesAsJson(Statement) ); Assert.Equal("75000ms", json.timeout.Value); }
public void Statement_is_cleaned(string statement) { const string expected = "SELECT 1;"; var options = new AnalyticsOptions(); var formValues = options.GetFormValues(statement); Assert.Equal(expected, formValues["statement"]); var json = JsonConvert.DeserializeObject <dynamic>( options.GetFormValuesAsJson(statement) ); Assert.Equal(expected, json.statement.Value); }
public void TestResetSettings() { const string testClientId = "test-client-id-string"; var objectUnderTest = new AnalyticsOptions { ClientId = testClientId, DialogShown = true, OptIn = true }; objectUnderTest.ResetSettings(); Assert.IsFalse(objectUnderTest.OptIn); Assert.IsFalse(objectUnderTest.DialogShown); Assert.IsNull(objectUnderTest.ClientId); }