Пример #1
0
 public void TestOptionTemplateFlexible()
 {
     using (var reader = new IniReader("flexible.ini", IniOptions.Flexible))
     {
         Assert.AreEqual("flexible value", reader.GetString("flexible"));
         Assert.AreEqual(10L, reader.GetInt64("int_in_string"));
         Assert.Null(reader.GetString("nonexistant"));
         Assert.True(reader.GetBool("loose_property"));
     }
 }
Пример #2
0
        public void TestReadParseFromStringAllowed(
            [Values] bool caseSensitive)
        {
            var options = new IniOptions(
                caseSensitive: caseSensitive,
                allowValueConversion: true);

            using (var reader = new IniReader("special.ini", options))
            {
                Assert.AreEqual(10L, reader.GetInt64("int_in_string"));
            }
        }
Пример #3
0
        public void TestReadParseFromStringNotAllowed(
            [Values] bool caseSensitive)
        {
            var options = new IniOptions(
                caseSensitive: caseSensitive,
                allowValueConversion: false);

            using (var reader = new IniReader("special.ini", options))
            {
                Assert.Throws <InvalidCastException>(() => reader.GetInt64("int_in_string"));
            }
        }
Пример #4
0
        public void TestReadCaseInsensitive(
            [Values] bool allowValueConversion,
            [Values] bool allowLooseProperties)
        {
            var options = new IniOptions(
                caseSensitive: false,
                allowValueConversion: allowValueConversion,
                allowLooseProperties: allowLooseProperties);

            using (var reader = new IniReader("basic.ini", options))
            {
                Assert.AreEqual(10L, reader.GetInt64("Section.uppercase"));
            }
        }
Пример #5
0
        public void TestReadCaseSensitive(
            [Values] bool allowValueConversion,
            [Values] bool allowLooseProperties)
        {
            var options = new IniOptions(
                caseSensitive: true,
                allowValueConversion: allowValueConversion,
                allowLooseProperties: allowLooseProperties);

            using (var reader = new IniReader("basic.ini", options))
            {
                Assert.Throws <ArgumentException>(() => reader.GetInt64("Section.uppercase"));
            }
        }
Пример #6
0
        public void TestExplicitReadFromDefaultSection(
            [Values] bool caseSensitive,
            [Values] bool allowValueConversion,
            [Values] bool allowLooseProperties)
        {
            var options = new IniOptions(
                caseSensitive: caseSensitive,
                allowValueConversion: allowValueConversion,
                allowLooseProperties: allowLooseProperties);

            using (var reader = new IniReader("basic.ini", options))
            {
                Assert.AreEqual(10L, reader.GetInt64($"{Section.DefaultSectionName}.nosection"));
            }
        }
Пример #7
0
        public void TestOptionTemplateUnix()
        {
            using (var reader = new IniReader("case-sensitivity.ini", IniOptions.Unix))
            {
                Assert.Throws <ArgumentException>(() => reader.GetInt64("uppercase"));
            }

            using (var mem = new MemoryStream())
                using (var streamWriter = new StreamWriter(mem))
                    using (var writer = new IniWriter(streamWriter, IniOptions.Unix))
                    {
                        writer.StartSection("section");
                        writer.Write();
                        writer.Flush();

                        mem.Position = 0;
                        var memReader = new StreamReader(mem);
                        var read      = memReader.ReadToEnd();
                        Assert.AreEqual("[section]\n", read);
                    }
        }