private static void ValidateEndingPolicies(SecurityPoliciesTestData testData) { if (testData.ShouldShutdown) { return; } var configurationService = _compositeTestAgent.Container.Resolve <IConfigurationService>(); var config = configurationService.Configuration; VerifyPoliciesMatch(testData.EndingPolicySettings.AllowRawExceptionMessages, !config.StripExceptionMessages); VerifyPoliciesMatch(testData.EndingPolicySettings.CustomEvents, config.CustomEventsEnabled); VerifyPoliciesMatch(testData.EndingPolicySettings.CustomInstrumentationEditor, config.CustomInstrumentationEditorEnabled); VerifyPoliciesMatch(testData.EndingPolicySettings.CustomParameters, config.CaptureCustomParameters); if (testData.EndingPolicySettings.AttributesInclude != null) { if (testData.EndingPolicySettings.AttributesInclude.Enabled) { Assert.IsNotEmpty(config.CaptureAttributesIncludes); } else { Assert.IsEmpty(config.CaptureAttributesIncludes); } } if (testData.EndingPolicySettings.RecordSql != null) { var expectedRecordSqlSetting = testData.EndingPolicySettings.RecordSql.Enabled ? DefaultConfiguration.ObfuscatedStringValue : DefaultConfiguration.OffStringValue; Assert.AreEqual(expectedRecordSqlSetting, config.TransactionTracerRecordSql); } }
private void InitializePreconnectResponse(SecurityPoliciesTestData testData) { var securityPolicies = JsonConvert.SerializeObject(testData.SecurityPolicies); Mock.Arrange(() => _collectorWire.SendData("preconnect", Arg.IsAny <ConnectionInfo>(), Arg.IsAny <string>())) .Returns("{'return_value': { 'redirect_host': '', 'security_policies': " + securityPolicies + "}}"); }
public void SecurityPolicies_CrossAgentTests(SecurityPoliciesTestData testData) { InitializeStartingPolicySettings(testData); InitializePreconnectResponse(testData); InitializeConnectResponse(); RunConnectProcess(); ValidateShutdownSignal(testData); ValidatePoliciesSentToConnect(testData); ValidateEndingPolicies(testData); }
private void ValidatePoliciesSentToConnect(SecurityPoliciesTestData testData) { if (testData.ShouldShutdown) { return; } var securityPoliciesSentToConnectApi = JArray.Parse(_connectRawData)[0]["security_policies"]; Assert.NotNull(securityPoliciesSentToConnectApi); ValidatePoliciesNotInConnect(testData.PoliciesToValidateNotSentToConnect, securityPoliciesSentToConnectApi); ValidateExpectedConnectPolicies(testData.ExpectedConnectPolicies, securityPoliciesSentToConnectApi); }
private static void InitializeStartingPolicySettings(SecurityPoliciesTestData testData) { if (testData.StartingPolicySettings.AllowRawExceptionMessages != null) { _compositeTestAgent.LocalConfiguration.stripExceptionMessages.enabled = !testData.StartingPolicySettings.AllowRawExceptionMessages.Enabled; } if (testData.StartingPolicySettings.AttributesInclude != null) { _compositeTestAgent.LocalConfiguration.attributes.enabled = true; _compositeTestAgent.LocalConfiguration.attributes.include = new List <string> { "attribute1", "attribute2" }; } if (testData.StartingPolicySettings.CustomEvents != null) { _compositeTestAgent.LocalConfiguration.customEvents.enabled = testData.StartingPolicySettings.CustomEvents.Enabled; } if (testData.StartingPolicySettings.CustomInstrumentationEditor != null) { _compositeTestAgent.LocalConfiguration.customInstrumentationEditor.enabled = testData.StartingPolicySettings.CustomInstrumentationEditor.Enabled; } if (testData.StartingPolicySettings.CustomParameters != null) { _compositeTestAgent.LocalConfiguration.customParameters.enabled = testData.StartingPolicySettings.CustomParameters.Enabled; } if (testData.StartingPolicySettings.RecordSql != null) { _compositeTestAgent.LocalConfiguration.transactionTracer.recordSql = testData.StartingPolicySettings.RecordSql.Enabled ? configurationTransactionTracerRecordSql.obfuscated : configurationTransactionTracerRecordSql.off; } _compositeTestAgent.PushConfiguration(); }
private void ValidateShutdownSignal(SecurityPoliciesTestData testData) { Assert.AreEqual(testData.ShouldShutdown, _receivedSecurityPoliciesException); }