Nuclex.Support/Source/Parsing/CommandLineParser.Test.cs
Markus Ewald 93092637cf Added a command line parser that extracts command line arguments and assignments for console-based utility programs
git-svn-id: file:///srv/devel/repo-conversion/nusu@50 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-24 20:16:14 +00:00

59 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
#if UNITTEST
using NUnit.Framework;
namespace Nuclex.Support.Parsing {
/// <summary>Ensures that the command line parser is working properly</summary>
[TestFixture]
public class CommandLineParserTest {
/// <summary>Validates that normal arguments can be parsed</summary>
[Test]
public void TestPlainArguments() {
Assert.AreEqual(
true.ToString(),
new CommandLineParser(new string[] { "-hello" })["hello"],
"Argument with minus sign is recognized"
);
Assert.AreEqual(
true.ToString(),
new CommandLineParser(new string[] { "--hello" })["hello"],
"Argument with double minus sign is recognized"
);
Assert.AreEqual(
true.ToString(),
new CommandLineParser(new string[] { "/hello" })["hello"],
"Argument with slash is recognized"
);
}
/// <summary>Validates that argument assignments are working</summary>
[Test]
public void TestAssignments() {
Assert.AreEqual(
"world",
new CommandLineParser(new string[] { "-hello:world" })["hello"],
"Argument can be assigned with a double colon"
);
Assert.AreEqual(
"world",
new CommandLineParser(new string[] { "-hello=world" })["hello"],
"Argument can be assigned with a equality sign"
);
Assert.AreEqual(
"world",
new CommandLineParser(new string[] { "-hello", "world" })["hello"],
"Argument can be assigned with a space"
);
}
}
} // namespace Nuclex.Support.Parsing
#endif // UNITTEST