public void TestReader() { var fileName = "c:\\temp\\lala 123\\file name.exe"; var test = "[Service]\r\n" + $"Path1 = {fileName}\r\n" + $"Path2 = {fileName}\r\n"; var ini = IniReader.Parse("ini", test); Assert.AreEqual(fileName, ini.ReadSetting("Service", "Path1")); Assert.AreEqual(fileName, ini.ReadSetting("Service", "Path2")); }
static void Main() { IniReader ini = new IniReader("test.ini"); Console.WriteLine(ini.ReadInteger("Section1", "KeyInt")); ini.Write("Section1", "KeyString", "MyString"); ini.Write("Section1", "KeyInt", 5); ini.Write("Section2", "KeyBool", true); ini.Write("Section2", "KeyBytes", new byte[] { 0, 123, 255 }); ini.Write("Section3", "KeyLong", (long)123456789101112); ini.Section = "Section1"; Console.WriteLine("Tests finished"); /*Application.EnableVisualStyles(); * Application.SetCompatibleTextRenderingDefault(false); * Application.Run(new TestForm());*/ }
private void TestReader(IniReader reader, SettingsStructFields[] settings) { var fields1 = typeof(SettingsStructFields).GetFields().OrderBy(f => f.Name).ToArray(); var fields2 = typeof(SettingsObjectFields).GetFields().OrderBy(f => f.Name).ToArray(); var fields3 = typeof(SettingsStructProperties).GetProperties().OrderBy(f => f.Name).ToArray(); var fields4 = typeof(SettingsObjectProperties).GetProperties().OrderBy(f => f.Name).ToArray(); for (var i = 0; i < settings.Length; i++) { var settings1 = reader.ReadStructFields <SettingsStructFields>($"Section {i}"); var settings2 = reader.ReadObjectFields <SettingsObjectFields>($"Section {i}"); var settings3 = reader.ReadStructProperties <SettingsStructProperties>($"Section {i}"); var settings4 = reader.ReadObjectProperties <SettingsObjectProperties>($"Section {i}"); for (var n = 0; n < fields1.Length; n++) { var original = fields1[n].GetValue(settings[i]); var value1 = fields1[n].GetValue(settings1); var value2 = fields2[n].GetValue(settings2); var value3 = fields3[n].GetValue(settings3, null); var value4 = fields4[n].GetValue(settings4, null); if (original is DateTime dt && !Equals(original, value1)) { switch (reader.Properties.Culture.ThreeLetterISOLanguageName) { case "dzo": return; default: throw new NotImplementedException(); } } Assert.AreEqual(original, value1); Assert.AreEqual(original, value2); Assert.AreEqual(original, value3); Assert.AreEqual(original, value4); } } }
public void IniReaderWriterTest() { var temp = Path.GetTempFileName(); Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: TestFile {temp}"); foreach (var culture in allCultures) { Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: Test {culture}"); if (!(culture.Calendar is GregorianCalendar)) { Console.WriteLine($"- Skipping calendar {culture.Calendar}"); continue; } var settings = new SettingsStructFields[10]; var properties = IniProperties.Default; properties.Culture = culture; var writer = new IniWriter(temp, properties); { var setting = SettingsStructFields.Random(null); settings[0] = setting; writer.WriteFields($"Section 0", setting); } for (var i = 1; i < settings.Length; i++) { var setting = SettingsStructFields.Random(culture); settings[i] = setting; writer.WriteFields($"Section {i}", setting); } writer.Save(temp); TestReader((IniReader)writer.ToReader(), settings); TestReader(IniReader.FromFile(temp, properties), settings); } }