Skip to content

Commit

Permalink
Add tests for all the IniParser Schema options.
Browse files Browse the repository at this point in the history
  • Loading branch information
rickyah committed Aug 25, 2019
1 parent 82b630a commit 54d10cc
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 5 deletions.
111 changes: 111 additions & 0 deletions src/IniFileParser.Tests/Integration/SchemeOptionTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
using IniParser;
using NUnit.Framework;

namespace IniFileParser.Tests.Unit.Configuration
{
[TestFixture]
public class SchemeOptionTests
{
[Test]
public void check_comment_string()
{
IniData iniData;
var parser = new IniDataParser();

parser.Scheme.CommentString = "";
Assert.That(parser.Scheme.CommentString, Is.EqualTo(";"));
parser.Scheme.CommentString = null;
Assert.That(parser.Scheme.CommentString, Is.EqualTo(";"));

var ini1 = @"; comment
key1=1";
iniData = parser.Parse(ini1);
Assert.That(iniData.Global.GetKeyData("key1").Comments, Has.Count.EqualTo(1));
Assert.That(iniData.Global.GetKeyData("key1").Comments[0], Is.EqualTo("comment"));

parser.Scheme.CommentString = "#";
var ini2 = @"# comment
key1=1";

iniData = parser.Parse(ini2);
Assert.That(iniData.Global.GetKeyData("key1").Comments, Has.Count.EqualTo(1));
Assert.That(iniData.Global.GetKeyData("key1").Comments[0], Is.EqualTo("comment"));

parser.Scheme.CommentString = "##";

var ini3 = @"##a comment
#key1=1";

iniData = parser.Parse(ini3);
Assert.That(iniData.Global.ContainsKey("#key1"), Is.True);

Assert.That(iniData.Global.GetKeyData("#key1").Comments, Has.Count.EqualTo(1));
Assert.That(iniData.Global.GetKeyData("#key1").Comments[0], Is.EqualTo("a comment"));
}

[Test]
public void check_section_string()
{
IniData iniData;
var parser = new IniDataParser();

parser.Scheme.SectionStartString = "";
parser.Scheme.SectionEndString = "";
Assert.That(parser.Scheme.SectionStartString, Is.EqualTo("["));
Assert.That(parser.Scheme.SectionEndString, Is.EqualTo("]"));
parser.Scheme.SectionStartString = null;
parser.Scheme.SectionEndString = null;
Assert.That(parser.Scheme.SectionStartString, Is.EqualTo("["));
Assert.That(parser.Scheme.SectionEndString, Is.EqualTo("]"));

var ini1 = @"[section]";
iniData = parser.Parse(ini1);

Assert.That(iniData.Sections.ContainsSection("section"), Is.True);

var ini2 = @"<section>";
parser.Scheme.SectionStartString = "<";
parser.Scheme.SectionEndString = ">";
iniData = parser.Parse(ini2);

Assert.That(iniData.Sections.ContainsSection("section"), Is.True);

var ini3 = @"<section]";
parser.Scheme.SectionStartString = "<";
parser.Scheme.SectionEndString = "]";
iniData = parser.Parse(ini3);
Assert.That(iniData.Sections.ContainsSection("section"), Is.True);

var ini4 = @"<<section>>
<key> = <value>";

parser.Scheme.SectionStartString = "<<";
parser.Scheme.SectionEndString = ">>";
iniData = parser.Parse(ini4);
Assert.That(iniData.Sections.ContainsSection("section"), Is.True);
Assert.That(iniData["section"].ContainsKey("<key>"), Is.True);
}

[Test]
public void check_property_assignment_string()
{
IniData iniData;
var parser = new IniDataParser();
parser.Configuration.AllowKeysWithoutSection = true;

parser.Scheme.PropertyAssigmentString = "";
Assert.That(parser.Scheme.PropertyAssigmentString, Is.EqualTo("="));
parser.Scheme.PropertyAssigmentString = null;
Assert.That(parser.Scheme.PropertyAssigmentString, Is.EqualTo("="));

var ini1 = @"key1 = 1";
iniData = parser.Parse(ini1);

Assert.That(iniData.Global["key1"], Is.EqualTo("1"));

var ini2 = @"key1 <== 1";
parser.Scheme.PropertyAssigmentString = "<==";
iniData = parser.Parse(ini2);
}
}
}
10 changes: 5 additions & 5 deletions src/IniFileParser.Tests/Unit/IniParserFile_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class IniParserFileTest
{
IniDataParser iniParser = new IniDataParser();

[Test, Description("Checks correct parsing of an empty INI file")]
[Test]
public void CheckParseEmptyFileSuccess()
{
var ini = @"
Expand All @@ -20,7 +20,7 @@ public void CheckParseEmptyFileSuccess()
Assert.That(parsedData, Is.Not.Null);
}

[Test, Description("Checks correct parsing of a well formed INI file")]
[Test]
public void CheckParseGoodFileSuccess()
{
var ini = @";comentario1
Expand All @@ -35,7 +35,7 @@ public void CheckParseGoodFileSuccess()
Assert.That(parsedData, Is.Not.Null);
}

[Test, Description("Checks error when parsing a bad formed INI file")]
[Test]

public void CheckParsingFailure()
{
Expand All @@ -53,7 +53,7 @@ [ [section 3] dsf a
Assert.Throws(typeof(ParsingException), () => iniParser.Parse(ini));
}

[Test, Description("Checks bad formed INI file: Two sections with same name")]
[Test]
public void CheckCollideSectionNames()
{
var ini = @";comentario1
Expand All @@ -70,7 +70,7 @@ public void CheckCollideSectionNames()
Assert.Throws(typeof(ParsingException), () => iniParser.Parse(ini));
}

[Test, Description("Checks bad formed INI file: Two keys in the same section with same name")]
[Test]
public void CheckCollideKeysNames()
{
var ini = @";comentario1
Expand Down

0 comments on commit 54d10cc

Please sign in to comment.