diff --git a/ILSpy.Tests/CommandLineArgumentsTests.cs b/ILSpy.Tests/CommandLineArgumentsTests.cs new file mode 100644 index 000000000..7acaaaa29 --- /dev/null +++ b/ILSpy.Tests/CommandLineArgumentsTests.cs @@ -0,0 +1,48 @@ +using FluentAssertions; + +using NUnit.Framework; + +namespace ICSharpCode.ILSpy.Tests +{ + [TestFixture] + public class CommandLineArgumentsTests + { + [Test] + public void VerifyEmptyArgumentsArray() + { + var cmdLineArgs = new CommandLineArguments(new string[] { }); + + cmdLineArgs.AssembliesToLoad.Should().BeEmpty(); + cmdLineArgs.SingleInstance.Should().BeNull(); + cmdLineArgs.NavigateTo.Should().BeNull(); + cmdLineArgs.Search.Should().BeNull(); + cmdLineArgs.Language.Should().BeNull(); + cmdLineArgs.NoActivate.Should().BeFalse(); + cmdLineArgs.ConfigFile.Should().BeNull(); + } + + [Test] + public void VerifySeparateOption() + { + var cmdLineArgs = new CommandLineArguments(new string[] { "/separate" }); + cmdLineArgs.SingleInstance.Should().BeFalse(); + } + + [Test] + public void VerifySingleInstanceOption() + { + var cmdLineArgs = new CommandLineArguments(new string[] { "/singleInstance" }); + cmdLineArgs.SingleInstance.Should().BeTrue(); + } + + [Test] + public void VerifySeparateSingleInstanceOptionOrdering() + { + var cmdLineArgsCase1 = new CommandLineArguments(new string[] { "/singleInstance", "/separate" }); + cmdLineArgsCase1.SingleInstance.Should().BeFalse(); + + var cmdLineArgsCase2 = new CommandLineArguments(new string[] { "/separate", "/singleInstance" }); + cmdLineArgsCase2.SingleInstance.Should().BeTrue(); + } + } +} diff --git a/ILSpy.Tests/ILSpy.Tests.csproj b/ILSpy.Tests/ILSpy.Tests.csproj index 79e95586a..17337e7b2 100644 --- a/ILSpy.Tests/ILSpy.Tests.csproj +++ b/ILSpy.Tests/ILSpy.Tests.csproj @@ -39,6 +39,7 @@ +