public void Then_read_and_write_should_succeed() { var fileName = Guid.NewGuid() + ".config"; var fullPathToConfigurationFile = TestHelpers.GetFullPathToConfigurationFile(fileName); try { var settings = new AppSettings(fullPathToConfigurationFile, FileOption.None); var mySettings = new TempSettings() { NonEmptyStringValue = "aaa", IntValue = 123, DoubleValue = 123.12d, LocalizedValue = 456.789 }; settings.ReadFrom(mySettings); Assert.AreEqual("aaa", settings.GetValue("NonEmptyStringValue")); Assert.IsFalse(settings.HasAppSetting("IntValue")); Assert.AreEqual(null, settings.GetValue<int?>("EmptyIntValue")); Assert.AreEqual(123.12d, settings.GetValue<double>("DoubleValue")); Assert.AreEqual(456.789, settings.GetValue<double>("DoubleFinnishLocale", CultureInfo.GetCultureInfo("fi-FI"))); Assert.AreEqual("456,789", settings.GetValue("DoubleFinnishLocale")); settings.Save(); var otherSettings = new TempSettings(); settings.WriteInto(otherSettings); Assert.AreEqual("aaa", otherSettings.NonEmptyStringValue); Assert.AreEqual(0, otherSettings.IntValue); Assert.AreEqual(null, otherSettings.NullableIntValue); Assert.AreEqual(123.12d, otherSettings.DoubleValue); Assert.AreEqual(456.789, otherSettings.LocalizedValue); } finally { TestHelpers.DeleteIfExists(fullPathToConfigurationFile); } }