Example #1
0
 public void TestParseIncompleteSectionUnit()
 {
     using (var reader = new StringReader("[section"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidTokenException>(() => parser.ParseUnitOfType <SectionUnit>());
         }
 }
Example #2
0
 public void TestDontParseDefaultSection()
 {
     using (var reader = new StringReader($"[{Section.DefaultSectionName}]"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidTokenException>(() => parser.ParseUnitOfType <SectionUnit>());
         }
 }
Example #3
0
 public void TestParseOfType()
 {
     using (var reader = new StringReader("[section]"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidUnitException>(() => parser.ParseUnitOfType <NameUnit>());
         }
 }
Example #4
0
 public void TestNoSkipLeadingNewlineStrongParsing()
 {
     using (var reader = new StringReader("\na"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidTokenException>(() => parser.ParseUnitOfType <NameUnit>(skipNewline: false));
         }
 }
Example #5
0
 public void TestInvalidAssignment()
 {
     using (var reader = new StringReader("value=value"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidUnitException>(() => parser.ParseUnitOfType <AssignmentUnit>());
         }
 }
Example #6
0
 public void TestParseTooLargeHexLiteral()
 {
     using (var reader = new StringReader("0xFFFFFFFFFFFFFFFFF"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidLiteralException>(() => parser.ParseUnitOfType <ValueUnit>());
         }
 }
Example #7
0
 public void TestParseTooLargeInteger()
 {
     using (var reader = new StringReader("9223372036854775808"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidLiteralException>(() => parser.ParseUnitOfType <ValueUnit>());
         }
 }
Example #8
0
 public void TestIncompleteString()
 {
     using (var reader = new StringReader("\""))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <EndOfDocumentException>(() => parser.ParseUnitOfType <ValueUnit>());
         }
 }
Example #9
0
 public void TestNewlineInString()
 {
     using (var reader = new StringReader("\"Hello,\nWorld!\""))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidTokenException>(() => parser.ParseUnitOfType <ValueUnit>());
         }
 }
Example #10
0
        public void TestComments()
        {
            using (var reader = new StringReader("#comment\n#comment\n[section]"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var unit = parser.ParseUnitOfType <SectionUnit>();

                    Assert.AreEqual("comment\ncomment", unit.Comment);
                }
        }
Example #11
0
 public void TestParseNameUnit()
 {
     using (var reader = new StringReader("name123_"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <NameUnit>(allowSingleUnitTransform: false);
             Assert.AreEqual("name123_", unit.SourceTokenString());
             Assert.AreEqual("name123_", unit.Name);
         }
 }
Example #12
0
        public void TestComment()
        {
            using (var reader = new StringReader("#comment\nvalue=10"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var prop = Property.FromParsedAssignmentUnit(parser.ParseUnitOfType <AssignmentUnit>(), IniOptions.Default);

                    Assert.AreEqual("comment", prop.Comment);
                }
        }
Example #13
0
        public void TestPositions()
        {
            using (var reader = new StringReader("#comment\n[section]"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var unit = parser.ParseUnitOfType <SectionUnit>();

                    Assert.AreEqual(new Position(1, 0), unit.Position);
                }
        }
Example #14
0
 public void TestSkipLeadingNewline()
 {
     using (var reader = new StringReader("\n[section]"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <SectionUnit>();
             Assert.AreEqual("[section]", unit.SourceTokenString());
             Assert.AreEqual("section", unit.Name);
         }
 }
Example #15
0
 public void TestVerbatimEscapeSequenceString()
 {
     using (var reader = new StringReader(@"@""Hello,\nWorld!"""))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual(@"@""Hello,\nWorld!""", unit.SourceTokenString());
             Assert.AreEqual(@"Hello,\nWorld!", unit.Value);
         }
 }
Example #16
0
 public void TestParseFalse()
 {
     using (var reader = new StringReader("false"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual("false", unit.SourceTokenString());
             Assert.AreEqual(false, unit.Value);
         }
 }
Example #17
0
 public void TestParseDoubleQuotedString()
 {
     using (var reader = new StringReader("\"Hello, World!\""))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual("\"Hello, World!\"", unit.SourceTokenString());
             Assert.AreEqual("Hello, World!", unit.Value);
         }
 }
Example #18
0
 public void TestParseBinaryLiteral()
 {
     using (var reader = new StringReader("0b0101100101011001"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual("0b0101100101011001", unit.SourceTokenString());
             Assert.AreEqual(22873UL, unit.Value);
         }
 }
Example #19
0
 public void TestParseHexLiteralType2()
 {
     using (var reader = new StringReader("&Hdeadbeef"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual("&Hdeadbeef", unit.SourceTokenString());
             Assert.AreEqual(3735928559UL, unit.Value);
         }
 }
Example #20
0
 public void TestParseFloatingPointNegative()
 {
     using (var reader = new StringReader("-1.1"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual("-1.1", unit.SourceTokenString());
             Assert.AreEqual(-1.1d, unit.Value);
         }
 }
Example #21
0
        public void TestFromParsedSection()
        {
            using (var reader = new StringReader("#comment\n[section]"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var section = Section.FromParsedSectionUnit(parser.ParseUnitOfType <SectionUnit>(), IniOptions.Default);

                    Assert.AreEqual("comment", section.Comment);
                    Assert.AreEqual("section", section.Name);
                }
        }
Example #22
0
        public void TestFromIntegerAssignment()
        {
            using (var reader = new StringReader("value=10"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var prop = Property.FromParsedAssignmentUnit(parser.ParseUnitOfType <AssignmentUnit>(), IniOptions.Default);

                    Assert.AreEqual("value", prop.Name);
                    Assert.AreEqual(10L, prop.GetValueAs <long>());
                }
        }
Example #23
0
        public void TestFromFloatingPointAssignment()
        {
            using (var reader = new StringReader("value=1.1"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var prop = Property.FromParsedAssignmentUnit(parser.ParseUnitOfType <AssignmentUnit>(), IniOptions.Default);

                    Assert.AreEqual("value", prop.Name);
                    Assert.AreEqual(1.1d, prop.GetValueAs <double>());
                }
        }
Example #24
0
        public void TestFromBooleanAssignment()
        {
            using (var reader = new StringReader("value=true"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var prop = Property.FromParsedAssignmentUnit(parser.ParseUnitOfType <AssignmentUnit>(), IniOptions.Default);

                    Assert.AreEqual("value", prop.Name);
                    Assert.AreEqual(true, prop.GetValueAs <bool>());
                }
        }
Example #25
0
        public void TestFromStringAssignment()
        {
            using (var reader = new StringReader("value=\"Hello, World!\""))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var prop = Property.FromParsedAssignmentUnit(parser.ParseUnitOfType <AssignmentUnit>(), IniOptions.Default);

                    Assert.AreEqual("value", prop.Name);
                    Assert.AreEqual("Hello, World!", prop.GetValueAs <string>());
                }
        }
Example #26
0
 public void TestEscapeSequences(
     [Values(@"\b", @"\n", @"\r", @"\t", @"\v", @"\\", @"\'", @"\""")] string input,
     [Values("\b", "\n", "\r", "\t", "\v", "\\", "'", "\"")] string escape)
 {
     using (var reader = new StringReader($"\"{input}\""))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             var unit = parser.ParseUnitOfType <ValueUnit>();
             Assert.AreEqual($"\"{input}\"", unit.SourceTokenString());
             Assert.AreEqual(escape, unit.Value);
         }
 }
Example #27
0
        public void TestParseFloatingPointAssignment()
        {
            using (var reader = new StringReader("value=1.1"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var unit = parser.ParseUnitOfType <AssignmentUnit>();
                    Assert.AreEqual("value=1.1", unit.SourceTokenString());

                    Assert.AreEqual("value", unit.Name);
                    Assert.AreEqual(1.1d, unit.Value);
                }
        }
Example #28
0
        public void TestParseStringAssignment()
        {
            using (var reader = new StringReader("value='Hello, World!'"))
                using (var parser = new Parser.Parser(reader, IniOptions.Default))
                {
                    var unit = parser.ParseUnitOfType <AssignmentUnit>();
                    Assert.AreEqual("value='Hello, World!'", unit.SourceTokenString());

                    Assert.AreEqual("value", unit.Name);
                    Assert.AreEqual("Hello, World!", unit.Value);
                }
        }
Example #29
0
        public void TestNoSkipLeadingNewlineFlexibleParsing()
        {
            var options = new IniOptions(propertyParsing: PropertyParsing.Flexible);

            using (var reader = new StringReader("\na"))
                using (var parser = new Parser.Parser(reader, options))
                {
                    var unit = parser.ParseUnitOfType <ValueUnit>(skipNewline: false);
                    Assert.AreEqual("\na", unit.SourceTokenString());
                    Assert.AreEqual("\na", unit.Value);
                }
        }
Example #30
0
 public void TestParseMultipleUnits()
 {
     using (var reader = new StringReader("[section] [section]\n[section]"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             for (var i = 0; i < 3; i++)
             {
                 var unit = parser.ParseUnitOfType <SectionUnit>();
                 Assert.AreEqual("[section]", unit.SourceTokenString());
                 Assert.AreEqual("section", unit.Name);
             }
         }
 }