public void ReadConfingsFromEnvVarsViaIConfig() { Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.Level, "Debug"); var serverUrl = "http://myServerFromEnvVar.com:1234"; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.Urls, serverUrl); var serviceName = "MyServiceName123"; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.ServiceName, serviceName); var secretToken = "SecretToken"; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.SecretToken, secretToken); var captureHeaders = false; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.CaptureHeaders, captureHeaders.ToString()); var configBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); var config = new MicrosoftExtensionsConfig(configBuilder, new TestLogger()); config.LogLevel.Should().Be(LogLevel.Debug); config.ServerUrls[0].Should().Be(new Uri(serverUrl)); config.ServiceName.Should().Be(serviceName); config.SecretToken.Should().Be(secretToken); config.CaptureHeaders.Should().Be(captureHeaders); }
public void ReadConfingsFromEnvVarsViaIConfig() { Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.LogLevel, "Debug"); var serverUrl = "http://myServerFromEnvVar.com:1234"; Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.ServerUrls, serverUrl); var serviceName = "MyServiceName123"; Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.ServiceName, serviceName); var serviceVersion = "2.1.0.5"; Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.ServiceVersion, serviceVersion); var environment = "staging"; Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.Environment, environment); var secretToken = "SecretToken"; Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.SecretToken, secretToken); Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.CaptureHeaders, false.ToString()); Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.TransactionSampleRate, "0.123"); var configBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); var config = new MicrosoftExtensionsConfig(configBuilder, new NoopLogger(), "test"); config.LogLevel.Should().Be(LogLevel.Debug); config.ServerUrls[0].Should().Be(new Uri(serverUrl)); config.ServiceName.Should().Be(serviceName); config.ServiceVersion.Should().Be(serviceVersion); config.Environment.Should().Be(environment); config.SecretToken.Should().Be(secretToken); config.CaptureHeaders.Should().Be(false); config.TransactionSampleRate.Should().Be(0.123); }
public void ReadValidConfigsFromAppSettingsJson() { var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new TestLogger()); Assert.Equal(LogLevel.Debug, config.LogLevel); Assert.Equal(new Uri("http://myServerFromTheConfigFile:8080"), config.ServerUrls[0]); Assert.Equal("My_Test_Application", config.ServiceName); }
public void LoggerNotNull() { var testLogger = new TestLogger(); var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), testLogger); var serverUrl = config.ServerUrls.FirstOrDefault(); serverUrl.Should().NotBeNull(); testLogger.Lines.Should().NotBeEmpty(); }
public void ReadValidConfigsFromAppSettingsJson() { var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new TestLogger()); config.LogLevel.Should().Be(LogLevel.Debug); config.ServerUrls[0].Should().Be(new Uri("http://myServerFromTheConfigFile:8080")); config.ServiceName.Should().Be("My_Test_Application"); config.CaptureHeaders.Should().Be(false); }
public void ReadInvalidServerUrlsConfigFromAppsettingsJson() { var logger = new TestLogger(); var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), logger); Assert.Equal(LogLevel.Error, config.LogLevel); Assert.Equal( $"Error Config: Failed parsing log level from {MicrosoftExtensionsConfig.Origin}: {MicrosoftExtensionsConfig.Keys.Level}, value: DbeugMisspelled. Defaulting to log level 'Error'", logger.Lines[0]); }
public MicrosoftExtensionsConfigIntegrationTests(WebApplicationFactory <Startup> factory) { _factory = factory; _logger = new TestLogger(); var capturedPayload = new MockPayloadSender(); var config = new MicrosoftExtensionsConfig( MicrosoftExtensionsConfigTests.GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), _logger, "test"); _agent = new ApmAgent( new AgentComponents(payloadSender: capturedPayload, configurationReader: config, logger: _logger)); _client = Helper.GetClient(_agent, _factory); }
public void MicrosoftExtensionsConfig_falls_back_on_env_vars() { var configBeforeEnvVarSet = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new NoopLogger(), "test"); configBeforeEnvVarSet.FlushInterval.Should().Be(ConfigConsts.DefaultValues.FlushIntervalInMilliseconds.Milliseconds()); var flushIntervalVal = 98.Seconds(); Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.FlushInterval, (int)flushIntervalVal.TotalSeconds + "s"); var configAfterEnvVarSet = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new NoopLogger(), "test"); configAfterEnvVarSet.FlushInterval.Should().Be(flushIntervalVal); }
public MicrosoftExtensionsConfigIntegrationTests(WebApplicationFactory <Startup> factory) { _factory = factory; _logger = new TestLogger(); _capturedPayload = new MockPayloadSender(); //The agent is instantiated with ApmMiddlewareExtension.GetService, so we can also test the calculation of the service instance. //(e.g. ASP.NET Core version) var config = new MicrosoftExtensionsConfig( MicrosoftExtensionsConfigTests.GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), _logger); _agent = new ApmAgent( new AgentComponents(payloadSender: _capturedPayload, configurationReader: config, logger: _logger)); _client = Helper.GetClient(_agent, _factory); }
public void ReadInvalidServerUrlsConfigFromAppsettingsJson() { var logger = new TestLogger(); var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), logger); config.LogLevel.Should().Be(LogLevel.Error); logger.Lines.Should().NotBeEmpty(); logger.Lines[0].Should() .ContainAll( $"{{{nameof(MicrosoftExtensionsConfig)}}}", "Failed parsing log level from", MicrosoftExtensionsConfig.Origin, MicrosoftExtensionsConfig.Keys.LogLevel, "Defaulting to ", "DbeugMisspelled" ); }
public void TransactionMaxSpansTest(string configurationValue, int expectedValue) { // Arrange var logger = new TestLogger(); var configurationBuilder = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { { ConfigConsts.KeyNames.TransactionMaxSpans, configurationValue } }); var reader = new MicrosoftExtensionsConfig(configurationBuilder.Build(), logger, "test"); // Act var transactionMaxSpans = reader.TransactionMaxSpans; // Assert transactionMaxSpans.Should().Be(expectedValue); }
public void MicrosoftExtensionsConfig_has_precedence_over_on_env_vars() { const double transactionSampleRateEnvVarValue = 0.851; const double transactionSampleRateValueInAppSettings = 0.456; var configBeforeEnvVarSet = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new NoopLogger(), "test"); configBeforeEnvVarSet.TransactionSampleRate.Should().Be(transactionSampleRateValueInAppSettings); Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.TransactionSampleRate, transactionSampleRateEnvVarValue.ToString(System.Globalization.CultureInfo.InvariantCulture)); new EnvironmentConfigurationReader(new NoopLogger()).TransactionSampleRate.Should().Be(transactionSampleRateEnvVarValue); var configAfterEnvVarSet = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new NoopLogger(), "test"); configAfterEnvVarSet.TransactionSampleRate.Should().Be(transactionSampleRateValueInAppSettings); }
public void ReadConfingsFromEnvVarsViaIConfig() { Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.Level, "Debug"); var serverUrl = "http://myServerFromEnvVar.com:1234"; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.Urls, serverUrl); var serviceName = "MyServiceName123"; Environment.SetEnvironmentVariable(ConfigConsts.ConfigKeys.ServiceName, serviceName); var configBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); var config = new MicrosoftExtensionsConfig(configBuilder); Assert.Equal(LogLevel.Debug, config.LogLevel); Assert.Equal(new Uri(serverUrl), config.ServerUrls[0]); Assert.Equal(serviceName, config.ServiceName); }
public void ReadValidConfigsFromAppSettingsJson() { var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_valid.json"), new TestLogger()); config.LogLevel.Should().Be(LogLevel.Debug); config.ServerUrls[0].Should().Be(new Uri("http://myServerFromTheConfigFile:8080")); config.ServiceName.Should().Be("My_Test_Application"); config.ServiceVersion.Should().Be("2.1.0.5"); config.CaptureHeaders.Should().Be(false); config.TransactionSampleRate.Should().Be(0.456); config.CaptureBody.Should().Be(ConfigConsts.SupportedValues.CaptureBodyAll); var supportedContentTypes = new List <string>() { "application/x-www-form-urlencoded*", "text/*", "application/json*", "application/xml*" }; config.CaptureBodyContentTypes.Should().BeEquivalentTo(supportedContentTypes); }
public void ReadInvalidLogLevelConfigFromAppsettingsJson() { var logger = new TestLogger(); var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), logger); config.LogLevel.Should().Be(LogLevel.Error); logger.Lines.Should().NotBeEmpty(); logger.Lines[0].Should() .ContainAll( $"{{{nameof(MicrosoftExtensionsConfig)}}}", "Failed parsing log level from", MicrosoftExtensionsConfig.Origin, MicrosoftExtensionsConfig.Keys.LogLevel, "Defaulting to " ); config.CaptureHeaders.Should().Be(true); config.TransactionSampleRate.Should().Be(1.0); }
public void ReadInvalidLogLevelConfigFromAppsettingsJson() { Environment.SetEnvironmentVariable(ConfigConsts.EnvVarNames.Environment, ""); var logger = new TestLogger(); var config = new MicrosoftExtensionsConfig(GetConfig($"TestConfigs{Path.DirectorySeparatorChar}appsettings_invalid.json"), logger, "test"); config.LogLevel.Should().Be(LogLevel.Error); logger.Lines.Should().NotBeEmpty(); logger.Lines[0].Should() .ContainAll( nameof(MicrosoftExtensionsConfig), "Failed parsing log level from", MicrosoftExtensionsConfig.Origin, ConfigConsts.KeyNames.LogLevel, "Defaulting to " ); config.Environment.Should().Be("test"); config.CaptureHeaders.Should().Be(true); config.TransactionSampleRate.Should().Be(1.0); }