public void PassThroughArgumentsAreParsedInCommandSet()
        {
            var arguments  = new SampleUnitTestArguments();
            var command    = new UnitTestCommand <SampleUnitTestArguments>(arguments, false);
            var commandSet = new CommandSet("set")
            {
                command
            };

            var exitCode = commandSet.Run(new[]
            {
                "unit-test",
                "-n",
                "50",
                "--enum",
                "Value2",
                XHarnessCommand.VerbatimArgumentPlaceholder,
                "v8",
                "--foo",
                "runtime.js",
            });

            Assert.Equal(0, exitCode);
            Assert.True(command.CommandRun);
            Assert.Equal(50, arguments.Number);
            Assert.Equal(SampleEnum.Value2, arguments.Enum);
            Assert.Equal(new[] { "v8", "--foo", "runtime.js" }, command.PassThroughArgs.ToArray());
        }
        public void ExtraneousArgumentsAreDetected()
        {
            var arguments = new SampleUnitTestArguments();
            var command   = new UnitTestCommand <SampleUnitTestArguments>(arguments, true);
            var exitCode  = command.Invoke(new[]
            {
                "-n",
                "50",
                "--enum",
                "Value2",
                "some",
                "other=1",
                "args",
            });

            Assert.Equal(0, exitCode);
            Assert.True(command.CommandRun);
            Assert.Equal(50, arguments.Number);
            Assert.Equal(SampleEnum.Value2, arguments.Enum);
            Assert.Equal(new[] { "some", "other=1", "args" }, command.ExtraArgs);
        }
 public XHarnessCommandTests()
 {
     _arguments = new SampleUnitTestArguments();
     _command   = new UnitTestCommand <SampleUnitTestArguments>(_arguments, false);
 }