public void BasicParse()
        {
            var mock = new MockCommand();

            this.cmdLine.RegisterCommand(new Program.Command("test", mock.Provider, "Brief Help"));

            var p = this.cmdLine.StartCmd("-test -command", Program.CommandTrigger.Cmd);

            Assert.IsNull(p, "Cannot parse as there are two commands");
            Assert.IsFalse(mock.Called);

            p = this.cmdLine.StartCmd("-test \"-command\"", Program.CommandTrigger.Cmd);

            Assert.IsNotNull(p, "Can parse as there is only one commands");
            Assert.IsTrue(mock.Called);
            Assert.IsTrue(Enumerable.SequenceEqual(new List <string> {
                "-command"
            }, mock.GetCall(0)));

            p = this.cmdLine.StartCmd("-test test \"-command\" \"test with spaces\" \"-8\"", Program.CommandTrigger.Cmd);

            Assert.IsNotNull(p);
            Assert.AreEqual(2, mock.CallCount);
            Assert.IsTrue(Enumerable.SequenceEqual(new List <string> {
                "test", "-command", "test with spaces", "-8"
            }, mock.GetCall(1)));
        }