public void ConsoleCommandShouldCorrectlyProcessWithNoCommandExecutor()
        {
            var mainTestDir = TestDirectories.GetMainLibLoadTestDir();
            var xmlFileDto = new FileDto(mainTestDir, ".\\XmlCmdFiles\\CmdFile002.xml");

            if (!FileHelper.IsFileDtoValid(xmlFileDto) || !xmlFileDto.FileXinfo.Exists)
            {
                Assert.IsTrue(false);
            }

            var cmdExeDto = TestDirectories.GetConsoleExecutorDto();
            cmdExeDto.XmlCmdFileDto = xmlFileDto;

            var builder = new XmlParameterBuilder(cmdExeDto);

            var jobGroup = builder.BuildParmsFromXml();

            var job = jobGroup.Jobs[0];

            Assert.IsNotNull(job);

            var expectedProcFile = "npm";
            var expectedProcArgs = "install --save-dev gulp-jshint gulp-jscs jshint-stylish";

            Assert.IsTrue(job.ProcFileNameCommand == expectedProcFile);

            Assert.IsTrue(job.ProcFileArguments == expectedProcArgs);
        }
示例#2
0
        public void T004_XmlCmdFileShouldParseHeaderSuccessfully()
        {
            var cmdExeDto = TestDirectories.GetConsoleExecutorDto();

            var builder = new XmlParameterBuilder(cmdExeDto);

            builder.BuildParmsFromXml();
            var expectedDirDto = new DirectoryDto(TestDirectories.GetTestExeDir().DirInfo.FullName + "\\installLog");
            var dirDto = new DirectoryDto(cmdExeDto.DefaultCommandOutputLogFilePathName);
            Assert.IsTrue(cmdExeDto.AppLogRetentionInDays == 0);
            Assert.IsTrue(dirDto.DirInfo.FullName == expectedDirDto.DirInfo.FullName);
        }
示例#3
0
        public void T002_XmlCmdFileShouldParseSuccessfully()
        {
            var cmdExeDto = TestDirectories.GetConsoleExecutorDto();

            var builder = new XmlParameterBuilder(cmdExeDto);

            var jobGroup = builder.BuildParmsFromXml();

            Assert.IsNotNull(jobGroup);

            Assert.IsTrue(jobGroup.Jobs.Count == 3);

            Assert.IsTrue(jobGroup.Jobs[0].CommandDisplayName== "jshint and jscs");

            Assert.IsTrue(jobGroup.Jobs[2].CommandDisplayName == "gulp plumber");
        }
        public void ConsoleCommandShouldInitializeCorrectly()
        {
            var cmdExeDto = TestDirectories.GetConsoleExecutorDto();

            var builder = new XmlParameterBuilder(cmdExeDto);

            var jobGroup = builder.BuildParmsFromXml();

            var job = jobGroup.Jobs[0];

            Assert.IsNotNull(job);

            var expectedProcFile = "cmd.exe";
            var expectedProcArgs = "/c npm install --save-dev gulp-jshint gulp-jscs jshint-stylish";

            Assert.IsTrue(job.ProcFileNameCommand == expectedProcFile);

            Assert.IsTrue(job.ProcFileArguments == expectedProcArgs);
        }
示例#5
0
        public void T003_XmlParserShouldParseExitCodeLimitsCorrectly()
        {
            var cmdExeDto = TestDirectories.GetConsoleExecutorDto();
            var defaultUpperLimit = 99999;
            var defaultLowerLimit = -99999;

            Assert.IsTrue(cmdExeDto.DefaultKillJobsRunOnExitCodeGreaterThan == defaultUpperLimit);
            Assert.IsTrue(cmdExeDto.DefaultKillJobsRunOnExitCodeLessThan == defaultLowerLimit);

            var builder = new XmlParameterBuilder(cmdExeDto);

            var jobGroup = builder.BuildParmsFromXml();

            Assert.IsNotNull(jobGroup);

            Assert.IsTrue(jobGroup.Jobs.Count == 3);
            Assert.IsTrue(jobGroup.Jobs[1].KillJobsRunOnExitCodeGreaterThan == 50);
            Assert.IsTrue(jobGroup.Jobs[1].KillJobsRunOnExitCodeLessThan == -50);

            Assert.IsTrue(jobGroup.Jobs[2].KillJobsRunOnExitCodeGreaterThan == defaultUpperLimit);
            Assert.IsTrue(jobGroup.Jobs[2].KillJobsRunOnExitCodeLessThan == defaultLowerLimit);
        }
示例#6
0
        private static bool ParseCommandJobsFromXml(ConsoleExecutorDto cmdExeDto, out JobsGroupDto jobsGroupDto)
        {
            jobsGroupDto = null;

            try
            {
                var xmlParser = new XmlParameterBuilder(cmdExeDto);
                jobsGroupDto = xmlParser.BuildParmsFromXml();

                if (jobsGroupDto == null || jobsGroupDto.NumberOfJobs < 1)
                {
                    var err = new FileOpsErrorMessageDto
                    {
                        DirectoryPath = string.Empty,
                        ErrId = 35,
                        ErrorMessage = "Zero jobs were extracted from the XmlCommands file!",
                        ErrSourceMethod = "ParseCommandJobsFromXml()",
                        FileName = string.Empty,
                        LoggerLevel = LogLevel.FATAL
                    };

                    cmdExeDto.ApplicationExitStatus.OpsError = _errorMgr.FormatErrorDto(err);
                    cmdExeDto.ApplicationExitStatus.IsTerminateApp = true;
                    cmdExeDto.ApplicationExitStatus.WriteExitConsoleMessage();
                    Environment.ExitCode = -3;
                    return false;
                }

            }
            catch(Exception ex)
            {
                var err = new FileOpsErrorMessageDto
                {
                    DirectoryPath = string.Empty,
                    ErrId = 137,
                    ErrorMessage = ex.Message,
                    ErrSourceMethod = "ParseCommandJobsFromXml()",
                    ErrException = ex,
                    FileName = string.Empty,
                    LoggerLevel = LogLevel.FATAL
                };

                _errorMgr.LoggingStatus = ErrorLoggingStatus.On;
                _errorMgr.WriteErrorMsg(err);
                Environment.ExitCode = -3;
                cmdExeDto.ApplicationExitStatus.OpsError = _errorMgr.FormatErrorDto(err);
                cmdExeDto.ApplicationExitStatus.IsExceptionThrown = true;
                cmdExeDto.ApplicationExitStatus.WriteExitConsoleMessage();

                return false;
            }

            return true;
        }