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 @@
+