示例#1
0
        public void ManageCronJobs()
        {
            this.LogDebug("Getting initial job list...");
            _searchCmd.Execute();
            var initialJobs = _searchCmd.Response.Rows ?? new JobSearchEntry[0];

            this.LogDebug("Getting default job settings...");
            _getCmd.ParameterSet.JobId = null;
            _getCmd.Execute();
            var defaults = _getCmd.Response;

            this.LogDebug("Creating new job...");
            _addCmd.ParameterSet.FillFrom(defaults);
            _addCmd.ParameterSet.Command     = defaults.Commands.First(x => x.Key.Contains("changelog", StringComparison.OrdinalIgnoreCase)).Key;
            _addCmd.ParameterSet.Description = "Update changelog at midnight..";
            _addCmd.ParameterSet.Enabled     = true;
            _addCmd.Execute();

            Assert.Equal("saved", _addCmd.Response.Result);
            var jobId = _addCmd.Response.Uuid;

            this.LogDebug("Getting new job list...");
            _searchCmd.Execute();
            var newJobs = _searchCmd.Response.Rows ?? new JobSearchEntry[0];

            Assert.True(newJobs.Length > initialJobs.Length);

            this.LogDebug("Toggling job...");
            _toggleCmd.ParameterSet.JobId   = jobId;
            _toggleCmd.ParameterSet.Enabled = null;
            _toggleCmd.Execute();

            Assert.Equal("disabled", _toggleCmd.Response.Result, ignoreCase: true);
            _toggleCmd.Execute();
            Assert.Equal("enabled", _toggleCmd.Response.Result, ignoreCase: true);

            _toggleCmd.ParameterSet.Enabled = true;
            _toggleCmd.Execute();
            Assert.Equal("enabled", _toggleCmd.Response.Result, ignoreCase: true);
            _toggleCmd.Execute();
            Assert.Equal("enabled", _toggleCmd.Response.Result, ignoreCase: true);

            _toggleCmd.ParameterSet.Enabled = false;
            _toggleCmd.Execute();
            Assert.Equal("disabled", _toggleCmd.Response.Result, ignoreCase: true);
            _toggleCmd.Execute();
            Assert.Equal("disabled", _toggleCmd.Response.Result, ignoreCase: true);

            this.LogDebug("Getting job details...");
            _getCmd.ParameterSet.JobId = jobId;
            _getCmd.Execute();
            var details = _getCmd.Response;

            this.LogDebug("Updating job...");
            _updateCmd.ParameterSet.JobId = jobId;
            _updateCmd.ParameterSet.FillFrom(details);
            _updateCmd.ParameterSet.Enabled     = true;
            _updateCmd.ParameterSet.Description = "Update changelog at midnight.";
            _updateCmd.Execute();
            Assert.Equal("saved", _updateCmd.Response.Result);

            this.LogDebug("Deleting job...");
            _deleteCmd.ParameterSet.JobId = jobId;
            _deleteCmd.Execute();
            Assert.Equal("deleted", _deleteCmd.Response.Result);

            this.LogDebug("Getting list of jobs one last time...");
            _searchCmd.Execute();

            newJobs = _searchCmd.Response.Rows ?? new JobSearchEntry[0];
            Assert.Equal(initialJobs.Length, newJobs.Length);
        }