public void Then_existing_setting_is_overwritten()
        {
            // Initialize with value "a"
            var settings = new AppSettings("filename", FileOption.None);
            settings.SetValue("NonEmptyStringValue", "a");

            // Overwrite a with b
            var mySettings = new SettingsWithPublicGetters("b", 1, null);

            settings.ReadFrom(mySettings);

            Assert.AreEqual("b", settings.GetValue("NonEmptyStringValue"));
        }
        public void Then_all_public_properties_should_be_get()
        {
            var nonEmptyString = "a";
            var anyInt = 1;

            var settings = new AppSettings("filename", FileOption.None);

            var mySettings = new SettingsWithPublicGetters(nonEmptyString, anyInt, null);
            mySettings.DoubleValue = 1.1d;

            settings.ReadFrom(mySettings);

            Assert.AreEqual(nonEmptyString, settings.GetValue("NonEmptyStringValue"));
            Assert.AreEqual(anyInt, settings.GetValue<int>("IntValue"));
            Assert.AreEqual(null, settings.GetValue<int?>("EmptyIntValue"));
            Assert.AreEqual(1.1d, settings.GetValue<double>("DoubleValue"));
        }