< Summary

Class:Azure.Data.AppConfiguration.ConfigurationSetting
Assembly:Azure.Data.AppConfiguration
File(s):C:\Git\azure-sdk-for-net\sdk\appconfiguration\Azure.Data.AppConfiguration\src\ConfigurationSetting.cs
Covered lines:16
Uncovered lines:3
Coverable lines:19
Total lines:107
Line coverage:84.2% (16 of 19)
Covered branches:2
Total branches:2
Branch coverage:100% (2 of 2)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor()-100%100%
.ctor(...)-100%100%
get_Key()-100%100%
get_Label()-100%100%
get_Value()-100%100%
get_ContentType()-100%100%
get_ETag()-100%100%
get_LastModified()-100%100%
get_IsReadOnly()-100%100%
get_Tags()-100%100%
set_Tags(...)-100%100%
Equals(...)-0%100%
GetHashCode()-0%100%
ToString()-0%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\appconfiguration\Azure.Data.AppConfiguration\src\ConfigurationSetting.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Collections.Generic;
 6using System.ComponentModel;
 7using System.Text.Json.Serialization;
 8
 9namespace Azure.Data.AppConfiguration
 10{
 11    /// <summary>
 12    /// A setting, defined by a unique combination of a key and label.
 13    /// </summary>
 14    [JsonConverter(typeof(ConfigurationSettingJsonConverter))]
 15    public sealed class ConfigurationSetting
 16    {
 17        private IDictionary<string, string> _tags;
 18
 454019        internal ConfigurationSetting()
 20        {
 454021        }
 22
 23        /// <summary>
 24        /// Creates a configuration setting and sets the values from the passed in parameter to this setting.
 25        /// </summary>
 26        /// <param name="key">The primary identifier of the configuration setting.</param>
 27        /// <param name="value">The configuration setting's value.</param>
 28        /// <param name="label">A label used to group this configuration setting with others.</param>
 20229        public ConfigurationSetting(string key, string value, string label = null)
 30        {
 20231            Key = key;
 20232            Value = value;
 20233            Label = label;
 20234        }
 35
 36        #region Snippet:SettingProperties
 37        /// <summary>
 38        /// The primary identifier of the configuration setting.
 39        /// A <see cref="Key"/> is used together with a <see cref="Label"/> to uniquely identify a configuration setting
 40        /// </summary>
 672841        public string Key { get; set; }
 42
 43        /// <summary>
 44        /// A value used to group configuration settings.
 45        /// A <see cref="Label"/> is used together with a <see cref="Key"/> to uniquely identify a configuration setting
 46        /// </summary>
 595647        public string Label { get; set; }
 48
 49        /// <summary>
 50        /// The configuration setting's value.
 51        /// </summary>
 594452        public string Value { get; set; }
 53
 54        /// <summary>
 55        /// The content type of the configuration setting's value.
 56        /// Providing a proper content-type can enable transformations of values when they are retrieved by applications
 57        /// </summary>
 540058        public string ContentType { get; set; }
 59
 60        /// <summary>
 61        /// An ETag indicating the state of a configuration setting within a configuration store.
 62        /// </summary>
 512463        public ETag ETag { get; internal set; }
 64
 65        /// <summary>
 66        /// The last time a modifying operation was performed on the given configuration setting.
 67        /// </summary>
 447068        public DateTimeOffset? LastModified { get; internal set; }
 69
 70        /// <summary>
 71        /// A value indicating whether the configuration setting is read only.
 72        /// A read only configuration setting may not be modified until it is made writable.
 73        /// </summary>
 453074        public bool? IsReadOnly { get; internal set; }
 75
 76        /// <summary>
 77        /// A dictionary of tags used to assign additional properties to a configuration setting.
 78        /// These can be used to indicate how a configuration setting may be applied.
 79        /// </summary>
 80        public IDictionary<string, string> Tags
 81        #endregion Setting:Properties
 82        {
 236283            get => _tags ?? (_tags = new Dictionary<string, string>());
 24684            internal set => _tags = value;
 85        }
 86
 87        /// <summary>
 88        /// Check if two ConfigurationSetting instances are equal.
 89        /// </summary>
 90        /// <param name="obj">The instance to compare to.</param>
 91        [EditorBrowsable(EditorBrowsableState.Never)]
 092        public override bool Equals(object obj) => base.Equals(obj);
 93
 94        /// <summary>
 95        /// Get a hash code for the ConfigurationSetting.
 96        /// </summary>
 97        [EditorBrowsable(EditorBrowsableState.Never)]
 098        public override int GetHashCode() => base.GetHashCode();
 99
 100        /// <summary>
 101        /// Creates a (Key,Value) string in reference to the ConfigurationSetting.
 102        /// </summary>
 103        [EditorBrowsable(EditorBrowsableState.Never)]
 104        public override string ToString()
 0105            => $"({Key},{Value})";
 106    }
 107}