예제 #1
0
        public void Key_value_pairs_cannot_be_null()
        {
            // Arrange
            // Act
            Action action = () =>
            {
                var options = new KeyValuePairMetricsOptions(null);
            };

            // Assert
            action.Should().Throw <ArgumentNullException>();
        }
예제 #2
0
        /// <inheritdoc />
        public IMetricsBuilder Configure(IEnumerable <KeyValuePair <string, string> > optionValues)
        {
            if (optionValues == null)
            {
                throw new ArgumentNullException(nameof(optionValues));
            }

            var mergedOptions = new KeyValuePairMetricsOptions(_options, optionValues).AsOptions();

            _setupAction(mergedOptions);

            _options = mergedOptions;

            return(Builder);
        }
예제 #3
0
        /// <inheritdoc />
        public IMetricsBuilder Extend(MetricsOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            var optionsValuesToExtend = options.ToKeyValue();
            var extendedOptions       = new KeyValuePairMetricsOptions(_options, optionsValuesToExtend).AsOptions(true);

            _setupAction(extendedOptions);

            _options = extendedOptions;

            return(Builder);
        }
예제 #4
0
        public void Global_tags_should_be_formatted_correctly(string tags)
        {
            // Arrange
            // Act
            Action action = () =>
            {
                var keyValuePairs = new Dictionary <string, string>
                {
                    { "MetricsOptions:GlobalTags:test", tags }
                };

                // Act
                var options = new KeyValuePairMetricsOptions(keyValuePairs).AsOptions();
            };

            // Assert
            action.Should().Throw <InvalidOperationException>();
        }
예제 #5
0
        public void Metrics_enabled_should_be_bool()
        {
            // Arrange
            // Act
            Action action = () =>
            {
                var keyValuePairs = new Dictionary <string, string>
                {
                    { "MetricsOptions:Enabled", "not_a_bool" }
                };

                // Act
                var options = new KeyValuePairMetricsOptions(keyValuePairs).AsOptions();
            };

            // Assert
            action.Should().Throw <InvalidCastException>();
        }
예제 #6
0
        public void Can_load_options_from_key_values()
        {
            // Arrange
            var keyValuePairs = new Dictionary <string, string>
            {
                { "MetricsOptions:DefaultContextLabel", "Testing" },
                { "MetricsOptions:GlobalTags:tag1", "value1" },
                { "MetricsOptions:GlobalTags:tag2", "value2" },
                { "MetricsOptions:Enabled", "false" }
            };

            // Act
            var options = new KeyValuePairMetricsOptions(keyValuePairs).AsOptions();

            // Assert
            options.DefaultContextLabel.Should().Be("Testing");
            options.GlobalTags.Count.Should().Be(2);
            options.GlobalTags.First().Key.Should().Be("tag1");
            options.GlobalTags.First().Value.Should().Be("value1");
            options.GlobalTags.Skip(1).First().Key.Should().Be("tag2");
            options.GlobalTags.Skip(1).First().Value.Should().Be("value2");
            options.Enabled.Should().BeFalse();
        }