예제 #1
0
        public void GetSettingByKeyThrowExceptionWhenKeysAreDuplictedTest()
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock(true);
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            Assert.ThrowsException <ArgumentException>(() => manager.GetSettingByName(SETTINGS_TWO_KEY));
        }
예제 #2
0
        public void GetSettingByKeyAndCannotCastTest()
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            Assert.ThrowsException <Exception>(() => manager.GetSettingByName <int>(SETTINGS_TWO_KEY));
        }
예제 #3
0
        public void GetSettingByKeyInvalidKey()
        {
            string key = SETTINGS_ONE_KEY + "1";

            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            Assert.ThrowsException <ConfigurationErrorsException>(() => manager.GetSettingByName(key));
        }
예제 #4
0
        public void GetSettingByKeyTest(string key, string expectedValue)
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            var value = manager.GetSettingByName(key);

            Assert.AreEqual(expectedValue, value);
        }
예제 #5
0
        public void GetSettingByKeyAndCastTest()
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            var value = manager.GetSettingByName <int>(SETTINGS_ONE_KEY);

            Assert.AreEqual(int.Parse(SETTINGS_ONE_VALUE), value);
        }
예제 #6
0
        public void GetSettingByKeyUpperCaseTest()
        {
            string key           = SETTINGS_ONE_KEY.ToUpper();
            string expectedValue = SETTINGS_ONE_VALUE;

            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            var value = manager.GetSettingByName(key);

            Assert.AreEqual(expectedValue, value);
        }
예제 #7
0
        public void GetSettingsFromProviderOnlyOnceTest()
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            CustomSettingsModel settings = manager.Settings;

            Mock.Assert(() => provider.GetAllSettingByEnvironment(), Occurs.Once());

            CustomSettingsModel settingsSecond = manager.Settings;

            Mock.Assert(() => provider.GetAllSettingByEnvironment(), Occurs.Once());
        }
예제 #8
0
        public void GetSettingsTest()
        {
            ICustomSettingsProvider provider = GetCustomSettingsPrroviderMock();
            ICustomSettingsManager  manager  = new CustomSettingsManager(provider);

            CustomSettingsModel settings = manager.Settings;

            Assert.IsNotNull(settings);
            Assert.AreEqual(ENVIRONMENT, settings.Environment);
            Assert.AreEqual(LOGGER_PATH, settings.LoggerPath);
            Assert.IsNotNull(settings.Settings);
            Assert.IsTrue(settings.Settings.ContainsKey(SETTINGS_ONE_KEY));
            Assert.IsTrue(settings.Settings.ContainsKey(SETTINGS_TWO_KEY));
            Assert.AreEqual(SETTINGS_ONE_VALUE, settings.Settings[SETTINGS_ONE_KEY]);
            Assert.AreEqual(SETTINGS_TWO_VALUE, settings.Settings[SETTINGS_TWO_KEY]);
        }
        public CustomSettingsManager(ICustomSettingsProvider customSettingsProvider)
        {
            ParameterValidation.IsNotNull(customSettingsProvider, nameof(customSettingsProvider));

            this.provider = customSettingsProvider;

            this.settings = new Lazy <CustomSettingsModel>(() =>
            {
                CustomSettingsModel settings = this.provider.GetAllSettingByEnvironment();
                return(settings);
            });

            this.customSettings = new Lazy <IDictionary <string, string> >(() =>
            {
                return(new Dictionary <string, string>(this.settings.Value.Settings, StringComparer.InvariantCultureIgnoreCase));
            });
        }