public void Key_value_pairs_cannot_be_null() { // Arrange // Act Action action = () => { var options = new KeyValuePairMetricsOptions(null); }; // Assert action.Should().Throw <ArgumentNullException>(); }
/// <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); }
/// <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); }
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>(); }
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>(); }
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(); }