Example #1
0
            public void beforeAll()
            {
                _keyPathProvider = Substitute.For <IKeyPathProvider>();
                _keyPathProvider.GetKeyPath <TestConfigured>().Returns("TestConfigured");

                _cut = new EnvironmentConfigurationSource(_keyPathProvider, new PropertyValueBinder());
            }
        public void DDVarTakesPrecedenceOverDDTags(string envKey, string tagKey)
        {
            string envValue = $"ddenv-custom-{tagKey}";
            string tagsLine = $"{tagKey}:ddtags-custom-{tagKey}";

            // save original values so we can restore later
            var originalEnvValue  = Environment.GetEnvironmentVariable(envKey);
            var originalTagsValue = Environment.GetEnvironmentVariable(ConfigurationKeys.GlobalTags);

            Environment.SetEnvironmentVariable(envKey, envValue, EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable(ConfigurationKeys.GlobalTags, tagsLine, EnvironmentVariableTarget.Process);

            IConfigurationSource source = new EnvironmentConfigurationSource();
            var settings = new TracerSettings(source);

            Assert.True(settings.GlobalTags.Any());

            var tracer = new Tracer(settings, _writerMock.Object, _samplerMock.Object, scopeManager: null, statsd: null);
            var span   = tracer.StartSpan("Operation");

            // restore original value
            Environment.SetEnvironmentVariable(envKey, originalEnvValue, EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable(ConfigurationKeys.GlobalTags, originalTagsValue, EnvironmentVariableTarget.Process);

            Assert.Equal(span.GetTag(tagKey), envValue);
        }
Example #3
0
            static TracerSettings GetTracerSettings(string key, string value)
            {
                Environment.SetEnvironmentVariable(key, value, EnvironmentVariableTarget.Process);
                IConfigurationSource source = new EnvironmentConfigurationSource();

                return(new TracerSettings(source));
            }
            public void beforeAll()
            {
                _keyPathProvider = Substitute.For <IKeyPathProvider>();

                //TODO setup or fake environment

                _cut = new EnvironmentConfigurationSource(_keyPathProvider);
            }
        public void GetConfig_WithNonStringValue_ConvertsEnvironmentVar()
        {
            var configManager = new EnvironmentConfigurationSource <ConfigWithNonString>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var actual = configManager.Config.Age;

            Assert.AreEqual(AgeValue, actual);
        }
        public void GetConfig_WithNoSpecifiedOptionName_UsesPropertyName()
        {
            var configManager = new EnvironmentConfigurationSource <ConfigWithoutName>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var actual = configManager.Config.Option;

            Assert.AreEqual(OptionValue, actual);
        }
        public void GetConfig_WithCustomOptionName_UsesCustomOptionName()
        {
            var configManager = new EnvironmentConfigurationSource<ConfigWithName>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var actual = configManager.Config.Option;

            Assert.AreEqual(SomethingValue, actual);
        }
        public void GetConfig_WithNonStringValue_ConvertsEnvironmentVar()
        {
            var configManager = new EnvironmentConfigurationSource<ConfigWithNonString>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var actual = configManager.Config.Age;

            Assert.AreEqual(AgeValue, actual);
        }
        public void GetConfig_WithNoSpecifiedOptionName_UsesPropertyName()
        {
            var configManager = new EnvironmentConfigurationSource<ConfigWithoutName>
                {
                    GlobalTarget = EnvironmentVariableTarget.Process
                };

            var actual = configManager.Config.Option;

            Assert.AreEqual(OptionValue, actual);
        }
        public void GetConfig_WithCustomOptionName_UsesCustomOptionName()
        {
            var configManager = new EnvironmentConfigurationSource <ConfigWithName>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var actual = configManager.Config.Option;

            Assert.AreEqual(SomethingValue, actual);
        }
        public void GetConfig_WithNonStringValueAndEnvVarNotConvertible_ThrowsNotSupportedException()
        {
            System.Environment.SetEnvironmentVariable("AGE", "NOT_INTEGER",
                                                      EnvironmentVariableTarget.Process);

            var configManager = new EnvironmentConfigurationSource <ConfigWithNonString>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

// ReSharper disable UnusedVariable
            var config = configManager.Config;
// ReSharper restore UnusedVariable
        }
        public void GetConfig_WithNonStringValueAndEnvVarNotConvertibleAndConversionExceptionsIgnored_LeavesValueAsDefault()
        {
            System.Environment.SetEnvironmentVariable("AGE", "NOT_INTEGER",
                                                      EnvironmentVariableTarget.Process);

            var configManager = new EnvironmentConfigurationSource <ConfigWithNonString>
            {
                GlobalTarget           = EnvironmentVariableTarget.Process,
                IgnoreConversionErrors = true
            };

            var config = configManager.Config;

            Assert.AreEqual(0, config.Age);
        }
        public void GlobalEnvironmentConfigurationSource(
            string key,
            string value,
            Func <GlobalSettings, object> settingGetter,
            object expectedValue)
        {
            // save original value so we can restore later
            var originalValue = Environment.GetEnvironmentVariable(key);

            Environment.SetEnvironmentVariable(key, value, EnvironmentVariableTarget.Process);
            IConfigurationSource source = new EnvironmentConfigurationSource();
            var    settings             = new GlobalSettings(source);
            object actualValue          = settingGetter(settings);

            Assert.Equal(expectedValue, actualValue);
            Environment.SetEnvironmentVariable(key, originalValue, EnvironmentVariableTarget.Process);
        }
        public void ConfiguredTracerSettings_DefaultTagsSetFromEnvironmentVariable(string environmentVariableKey, string tagKey, string value)
        {
            // save original value so we can restore later
            var originalValue = Environment.GetEnvironmentVariable(environmentVariableKey);

            Environment.SetEnvironmentVariable(environmentVariableKey, value, EnvironmentVariableTarget.Process);
            IConfigurationSource source = new EnvironmentConfigurationSource();
            var settings = new TracerSettings(source);

            var tracer = new Tracer(settings, _writerMock.Object, _samplerMock.Object, scopeManager: null, statsd: null);
            var span   = tracer.StartSpan("Operation");

            // restore original value
            Environment.SetEnvironmentVariable(environmentVariableKey, originalValue, EnvironmentVariableTarget.Process);

            Assert.Equal(span.GetTag(tagKey), value);
        }
Example #15
0
        public void EnvironmentConfigurationSource(
            string key,
            string value,
            Func <TracerSettings, object> settingGetter,
            object expectedValue)
        {
            var originalValue = Environment.GetEnvironmentVariable(key);

            Environment.SetEnvironmentVariable(key, value, EnvironmentVariableTarget.Process);

            IConfigurationSource source = new EnvironmentConfigurationSource();
            var    settings             = new TracerSettings(source);
            object actualValue          = settingGetter(settings);

            Assert.Equal(expectedValue, actualValue);

            Environment.SetEnvironmentVariable(key, originalValue, EnvironmentVariableTarget.Process);
        }
        public void Save_WithNoSpecifiedOptionName_SavesValueToEnvironment()
        {
            const string expected = "NEW OPTION";

            var configManager = new EnvironmentConfigurationSource <ConfigWithoutName>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var config = configManager.Config;

            config.Option = expected;

            configManager.Save(config);

            var actual = System.Environment.GetEnvironmentVariable(
                "OPTION", EnvironmentVariableTarget.Process);

            Assert.AreEqual(expected, actual);
        }
        public void EnvironmentConfigurationSource(
            string key,
            string value,
            Func <TracerSettings, object> settingGetter,
            object expectedValue)
        {
            // save original value so we can restore later
            var originalValue = Environment.GetEnvironmentVariable(key);

            TracerSettings settings;

            if (key == "DD_SERVICE_NAME")
            {
                // We need to ensure DD_SERVICE is empty.
                string originalServiceName = Environment.GetEnvironmentVariable(ConfigurationKeys.ServiceName);
                Environment.SetEnvironmentVariable(ConfigurationKeys.ServiceName, null, EnvironmentVariableTarget.Process);

                Environment.SetEnvironmentVariable(key, value, EnvironmentVariableTarget.Process);
                IConfigurationSource source = new EnvironmentConfigurationSource();
                settings = new TracerSettings(source);

                // after load settings we can restore the original DD_SERVICE
                Environment.SetEnvironmentVariable(ConfigurationKeys.ServiceName, originalServiceName, EnvironmentVariableTarget.Process);
            }
            else
            {
                Environment.SetEnvironmentVariable(key, value, EnvironmentVariableTarget.Process);
                IConfigurationSource source = new EnvironmentConfigurationSource();
                settings = new TracerSettings(source);
            }

            object actualValue = settingGetter(settings);

            Assert.Equal(expectedValue, actualValue);

            // restore original value
            Environment.SetEnvironmentVariable(key, originalValue, EnvironmentVariableTarget.Process);
        }
        public void GetConfig_WithNonStringValueAndEnvVarNotConvertible_ThrowsNotSupportedException()
        {
            System.Environment.SetEnvironmentVariable("AGE", "NOT_INTEGER",
                EnvironmentVariableTarget.Process);

            var configManager = new EnvironmentConfigurationSource<ConfigWithNonString>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

// ReSharper disable UnusedVariable
            var config = configManager.Config;
// ReSharper restore UnusedVariable
        }
        public void Save_WithNoSpecifiedOptionName_SavesValueToEnvironment()
        {
            const string expected = "NEW OPTION";

            var configManager = new EnvironmentConfigurationSource<ConfigWithoutName>
            {
                GlobalTarget = EnvironmentVariableTarget.Process
            };

            var config = configManager.Config;
            config.Option = expected;

            configManager.Save(config);

            var actual = System.Environment.GetEnvironmentVariable(
                "OPTION", EnvironmentVariableTarget.Process);

            Assert.AreEqual(expected, actual);
        }
        public void GetConfig_WithNonStringValueAndEnvVarNotConvertibleAndConversionExceptionsIgnored_LeavesValueAsDefault()
        {
            System.Environment.SetEnvironmentVariable("AGE", "NOT_INTEGER",
                EnvironmentVariableTarget.Process);

            var configManager = new EnvironmentConfigurationSource<ConfigWithNonString>
            {
                GlobalTarget = EnvironmentVariableTarget.Process,
                IgnoreConversionErrors = true
            };

            var config = configManager.Config;

            Assert.AreEqual(0, config.Age);
        }