コード例 #1
0
ファイル: Executor.Tests.cs プロジェクト: inausoft/netCLI
        public void CLIFlow_Run_ShouldRunOnlyProperCommandHandler_WhenMultipleCommandHandlersAreMapped()
        {
            //Arrange
            var args = new string[]
            {
                "command1",
                "--boolOption", "true",
                "--stringOption", "stringOptionValue",
                "--intOption", "1"
            };

            var mockCommand1Handler = new MockCommand1Handler();
            var mockCommand2Handler = new MockCommand2Handler();
            var mapping             = new CommandMapping().Map <Command1>(mockCommand1Handler)
                                      .Map <Command2>(mockCommand2Handler);

            //Act
            var result = CLIFlow.Create().UseMapping(mapping).Run(args);

            //Assert
            Assert.AreEqual(0, result, "RunCLI method indicted error in returned exit code");

            Assert.IsNull(mockCommand2Handler.LastRunParameters);
            Assert.IsNotNull(mockCommand1Handler.LastRunParameters);
        }
コード例 #2
0
ファイル: Executor.Tests.cs プロジェクト: inausoft/netCLI
        public void CLIFlow_Run_ShouldRunDefaultCommand_WhenNoCommandWasSpecified()
        {
            //Arrange
            var stringOptionValue = "sampleString";
            var intOptionValue    = 102;

            var args = new string[]
            {
                "--boolOption",
                "--stringOption", stringOptionValue,
                "--intOption", intOptionValue.ToString()
            };

            var mockCommandHandler = new MockCommand1Handler();
            var mapping            = new CommandMapping().MapDefault <Command1>(mockCommandHandler);

            //Act
            var result = CLIFlow.Create().UseMapping(mapping).Run(args);

            //Assert
            Assert.AreEqual(0, result, "RunCLI method indicted error in returned exit code");
            Assert.IsTrue(mockCommandHandler.LastRunParameters.BoolOption);
            Assert.IsNull(mockCommandHandler.LastRunParameters.NotOptionProperty);
            Assert.AreEqual(stringOptionValue, mockCommandHandler.LastRunParameters.StringOption);
            Assert.AreEqual(intOptionValue, mockCommandHandler.LastRunParameters.IntOption);
        }
コード例 #3
0
ファイル: Executor.Tests.cs プロジェクト: inausoft/netCLI
        public void CLIFlow_Run_ShouldThrowInvalidCommmandException_ForEmptyArguments()
        {
            //Arrange
            var args = new string[] { };

            var mockCommand1Handler = new MockCommand1Handler();
            var mapping             = new CommandMapping().Map <Command1>(mockCommand1Handler);

            //Act
            var result = CLIFlow.Create().UseMapping(mapping).Run(args);

            //Assert
            Assert.AreEqual((int)ErrorCode.UnspecifiedCommand, result);
        }
コード例 #4
0
ファイル: Executor.Tests.cs プロジェクト: inausoft/netCLI
        public void CLIFlow_Run_ShouldThrowInvalidCommmandException_ForNotMappedCommand()
        {
            var invalidCommandName = "invalidCommandName";

            //Arrange
            var args = new string[]
            {
                invalidCommandName,
                "--boolOption", "true",
            };

            var mockCommand1Handler = new MockCommand1Handler();
            var mapping             = new CommandMapping().Map <Command1>(mockCommand1Handler);

            //Act
            var result = CLIFlow.Create().UseMapping(mapping).Run(args);

            //Assert
            Assert.AreEqual((int)ErrorCode.UnrecognizedCommand, result);
        }
コード例 #5
0
ファイル: Executor.Tests.cs プロジェクト: inausoft/netCLI
        public void CLIFlow_Run_ShouldThrowInvalidOptionException_ForInvalidOption()
        {
            //Arrange
            var args = new string[]
            {
                "command1",
                "--boolOption", "true",
                "--boolOptionXX", "true",
                "--stringOption", "stringOptionValue",
                "--intOption", "1"
            };

            var mockCommand1Handler = new MockCommand1Handler();
            var mapping             = new CommandMapping().Map <Command1>(mockCommand1Handler);

            //Act
            var result = CLIFlow.Create().UseMapping(mapping).Run(args);

            //Assert
            Assert.AreEqual((int)ErrorCode.UnrecognizedOption, result);
        }