Exemplo n.º 1
0
        /// <summary>
        /// Starts a new <see cref="TaskExecutionContext"/>.
        /// </summary>
        /// <param name="project">The project.</param>
        /// <param name="request">The request.</param>
        /// <returns>
        /// The new <see cref="TaskExecutionContext"/>.
        /// </returns>
        public TaskExecutionContext StartNew(Project project, IntegrationRequest request)
        {
            logger.Debug("Starting execution context for project '{0}", project.Name);
            var buildName = this.Clock.Now.ToString("yyyyMMddHHmmss");
            var logFile   = TaskExecutionContext.GenerateArtifactFileName(project, buildName, "build.log");

            this.FileSystem.EnsureFolderExists(Path.GetDirectoryName(logFile));
            var writer = this.FileSystem.CreateXmlWriter(logFile);

            writer.WriteStartElement("project");
            writer.WriteAttributeString("name", project.Name);
            writer.WriteElementString("start", this.Clock.Now.ToString("s"));
            var parameters = new TaskExecutionParameters
            {
                XmlWriter          = writer,
                FileSystem         = this.FileSystem,
                Clock              = this.Clock,
                IntegrationRequest = request,
                Project            = project,
                BuildName          = buildName
            };
            var context = new TaskExecutionContext(parameters);

            return(context);
        }
 /// <summary>
 /// Starts a new <see cref="TaskExecutionContext"/>.
 /// </summary>
 /// <param name="project">The project.</param>
 /// <param name="request">The request.</param>
 /// <returns>
 /// The new <see cref="TaskExecutionContext"/>.
 /// </returns>
 public TaskExecutionContext StartNew(Project project, IntegrationRequest request)
 {
     logger.Debug("Starting execution context for project '{0}", project.Name);
     var buildName = this.Clock.Now.ToString("yyyyMMddHHmmss");
     var logFile = TaskExecutionContext.GenerateArtifactFileName(project, buildName, "build.log");
     this.FileSystem.EnsureFolderExists(Path.GetDirectoryName(logFile));
     var writer = this.FileSystem.CreateXmlWriter(logFile);
     writer.WriteStartElement("project");
     writer.WriteAttributeString("name", project.Name);
     writer.WriteElementString("start", this.Clock.Now.ToString("s"));
     var parameters = new TaskExecutionParameters
                          {
                              XmlWriter = writer,
                              FileSystem = this.FileSystem,
                              Clock = this.Clock,
                              IntegrationRequest = request,
                              Project = project,
                              BuildName = buildName
                          };
     var context = new TaskExecutionContext(parameters);
     return context;
 }
        public void ShouldCreateANewStartupTaskExecutionParamter()
        {
            //Arrange
            var task = new TaskAlpha();

            //Act
            var result = new TaskExecutionParameters
            {
                Task     = task,
                TaskType = task.GetType(),
                Position = 1,
                Delay    = 100,
                Group    = 2
            };

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(TaskExecutionParameters));
            Assert.AreSame(task, result.Task);
            Assert.AreSame(typeof(TaskAlpha), result.TaskType);
            Assert.AreEqual(1, result.Position);
            Assert.AreEqual(100, result.Delay);
            Assert.AreEqual(2, result.Group);
        }