示例#1
0
        private BuildInfo.BuildStatus ParseBuildStatus(PipelineStatus pipelineStatus)
        {
            switch (pipelineStatus)
            {
            case PipelineStatus.Created:
            case PipelineStatus.Scheduled:
            case PipelineStatus.Pending:
            case PipelineStatus.Preparing:
            case PipelineStatus.Running:
                return(BuildInfo.BuildStatus.InProgress);

            case PipelineStatus.Success:
                return(BuildInfo.BuildStatus.Success);

            case PipelineStatus.Failed:
                return(BuildInfo.BuildStatus.Failure);

            case PipelineStatus.Canceled:
                return(BuildInfo.BuildStatus.Stopped);

            case PipelineStatus.Skipped:
                return(BuildInfo.BuildStatus.Stopped);

            case PipelineStatus.Manual:
                return(BuildInfo.BuildStatus.Unknown);

            default:
                return(BuildInfo.BuildStatus.Unknown);
            }
        }
示例#2
0
        public void MapModelToEntity()
        {
            var mapper = new DALPipelineStatusMapper();
            ApiPipelineStatusServerRequestModel model = new ApiPipelineStatusServerRequestModel();

            model.SetProperties("A");
            PipelineStatus response = mapper.MapModelToEntity(1, model);

            response.Name.Should().Be("A");
        }
示例#3
0
        public virtual PipelineStatus MapBOToEF(
            BOPipelineStatus bo)
        {
            PipelineStatus efPipelineStatus = new PipelineStatus();

            efPipelineStatus.SetProperties(
                bo.Id,
                bo.Name);
            return(efPipelineStatus);
        }
        public virtual ApiPipelineStatusServerResponseModel MapEntityToModel(
            PipelineStatus item)
        {
            var model = new ApiPipelineStatusServerResponseModel();

            model.SetProperties(item.Id,
                                item.Name);

            return(model);
        }
示例#5
0
        public virtual BOPipelineStatus MapEFToBO(
            PipelineStatus ef)
        {
            var bo = new BOPipelineStatus();

            bo.SetProperties(
                ef.Id,
                ef.Name);
            return(bo);
        }
示例#6
0
 /// <summary>
 /// constructor
 /// </summary>
 /// <param name="status">The status.</param>
 /// <param name="name">The name.</param>
 /// <param name="url">The URL.</param>
 /// <param name="id">The identifier.</param>
 /// <param name="pipelineName">Name of the pipeline.</param>
 /// <param name="group">The group.</param>
 /// <param name="project">The project.</param>
 public ContinuumStatus(PipelineStatus status, string name = "", string url = "", string id = "", string pipelineName = "", string group = "", string project = "")
 {
     Status       = status;
     Name         = name;
     Url          = url;
     InstanceId   = id;
     PipelineName = pipelineName;
     Group        = group;
     Project      = project;
 }
示例#7
0
        public void MapEntityToModel()
        {
            var            mapper = new DALPipelineStatusMapper();
            PipelineStatus item   = new PipelineStatus();

            item.SetProperties(1, "A");
            ApiPipelineStatusServerResponseModel response = mapper.MapEntityToModel(item);

            response.Id.Should().Be(1);
            response.Name.Should().Be("A");
        }
示例#8
0
        public void MapEFToBO()
        {
            var            mapper = new DALPipelineStatusMapper();
            PipelineStatus entity = new PipelineStatus();

            entity.SetProperties(1, "A");

            BOPipelineStatus response = mapper.MapEFToBO(entity);

            response.Id.Should().Be(1);
            response.Name.Should().Be("A");
        }
示例#9
0
        public void MapBOToEF()
        {
            var mapper = new DALPipelineStatusMapper();
            var bo     = new BOPipelineStatus();

            bo.SetProperties(1, "A");

            PipelineStatus response = mapper.MapBOToEF(bo);

            response.Id.Should().Be(1);
            response.Name.Should().Be("A");
        }
        public virtual PipelineStatus MapModelToEntity(
            int id,
            ApiPipelineStatusServerRequestModel model
            )
        {
            PipelineStatus item = new PipelineStatus();

            item.SetProperties(
                id,
                model.Name);
            return(item);
        }
示例#11
0
        public void MapEntityToModelList()
        {
            var            mapper = new DALPipelineStatusMapper();
            PipelineStatus item   = new PipelineStatus();

            item.SetProperties(1, "A");
            List <ApiPipelineStatusServerResponseModel> response = mapper.MapEntityToModel(new List <PipelineStatus>()
            {
                { item }
            });

            response.Count.Should().Be(1);
        }
示例#12
0
        public virtual async Task <ApiPipelineStatusServerResponseModel> Get(int id)
        {
            PipelineStatus record = await this.PipelineStatusRepository.Get(id);

            if (record == null)
            {
                return(null);
            }
            else
            {
                return(this.DalPipelineStatusMapper.MapEntityToModel(record));
            }
        }
示例#13
0
        public void MapEFToBOList()
        {
            var            mapper = new DALPipelineStatusMapper();
            PipelineStatus entity = new PipelineStatus();

            entity.SetProperties(1, "A");

            List <BOPipelineStatus> response = mapper.MapEFToBO(new List <PipelineStatus>()
            {
                entity
            });

            response.Count.Should().Be(1);
        }
示例#14
0
 public void SendUpdate(PipelineStatus status)
 {
     if (_completedTasks == 0)
     {
         StatusUpdate?.Invoke(
             new PipelineUpdate(status, 0.0));
     }
     else
     {
         var progress = _completedTasks / _numberOfTasks * 100;
         StatusUpdate?.Invoke(
             new PipelineUpdate(status, progress));
     }
 }
示例#15
0
 public PipelineInfo(string toolName, string pipeline, string environment, bool updatePlan = false, string pipelineInstanceName = null, List <string> testCasesIds = null)
 {
     ConfigData            = GetConfigData(toolName, pipeline, environment);
     ConfigData.UpdatePlan = updatePlan;
     LockName  = string.Join("_", environment, toolName, "Cloud");
     ConfigKey = string.Join("_", environment, toolName, pipeline);
     Status    = PipelineStatus.Queued;
     if (!string.IsNullOrEmpty(pipelineInstanceName))
     {
         PipelineInstance = string.Join("_", toolName, pipeline, pipelineInstanceName);
     }
     else
     {
         PipelineInstance = string.Join("_", toolName, pipeline, DateTime.UtcNow.Date.ToString("ddMMMyyyy"), "1");
     }
 }
示例#16
0
        public virtual async Task <CreateResponse <ApiPipelineStatusServerResponseModel> > Create(
            ApiPipelineStatusServerRequestModel model)
        {
            CreateResponse <ApiPipelineStatusServerResponseModel> response = ValidationResponseFactory <ApiPipelineStatusServerResponseModel> .CreateResponse(await this.PipelineStatusModelValidator.ValidateCreateAsync(model));

            if (response.Success)
            {
                PipelineStatus record = this.DalPipelineStatusMapper.MapModelToEntity(default(int), model);
                record = await this.PipelineStatusRepository.Create(record);

                response.SetRecord(this.DalPipelineStatusMapper.MapEntityToModel(record));
                await this.mediator.Publish(new PipelineStatusCreatedNotification(response.Record));
            }

            return(response);
        }
示例#17
0
        public async void Get_ShouldReturnRecords()
        {
            var mock   = new ServiceMockFacade <IPipelineStatusService, IPipelineStatusRepository>();
            var record = new PipelineStatus();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(record));
            var service = new PipelineStatusService(mock.LoggerMock.Object,
                                                    mock.MediatorMock.Object,
                                                    mock.RepositoryMock.Object,
                                                    mock.ModelValidatorMockFactory.PipelineStatusModelValidatorMock.Object,
                                                    mock.DALMapperMockFactory.DALPipelineStatusMapperMock,
                                                    mock.DALMapperMockFactory.DALPipelineMapperMock);

            ApiPipelineStatusServerResponseModel response = await service.Get(default(int));

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }
示例#18
0
        public virtual async Task <UpdateResponse <ApiPipelineStatusServerResponseModel> > Update(
            int id,
            ApiPipelineStatusServerRequestModel model)
        {
            var validationResult = await this.PipelineStatusModelValidator.ValidateUpdateAsync(id, model);

            if (validationResult.IsValid)
            {
                PipelineStatus record = this.DalPipelineStatusMapper.MapModelToEntity(id, model);
                await this.PipelineStatusRepository.Update(record);

                record = await this.PipelineStatusRepository.Get(id);

                ApiPipelineStatusServerResponseModel apiModel = this.DalPipelineStatusMapper.MapEntityToModel(record);
                await this.mediator.Publish(new PipelineStatusUpdatedNotification(apiModel));

                return(ValidationResponseFactory <ApiPipelineStatusServerResponseModel> .UpdateResponse(apiModel));
            }
            else
            {
                return(ValidationResponseFactory <ApiPipelineStatusServerResponseModel> .UpdateResponse(validationResult));
            }
        }
示例#19
0
        public void PipelineStatus_OneInstance_TwoStages_BuildingBeatsEverything_FailedBeatsPassed(StageStatus stageStatus1, StageStatus stageStatus2, PipelineStatus pipelineStatus)
        {
            // Arrange
            var pipeline = new Pipeline()
            {
                PipelineInstances = { new PipelineInstance()
                                      {
                                          Stages ={ new Stage              {
                                            Status = stageStatus1
                                        }, new Stage {
                                            Status = stageStatus2
                                        } }
                                      } }
            };

            // Act/Assert
            Assert.That(pipeline.Status, Is.EqualTo(pipelineStatus));
        }
示例#20
0
        public void PipelineStatus_OneInstance_OneStage_CancelledIsFailed_UnknowenIsPassed(StageStatus stageStatus, PipelineStatus pipelineStatus)
        {
            // Arrange
            var pipeline = new Pipeline()
            {
                PipelineInstances = { new PipelineInstance()
                                      {
                                          Stages ={ new Stage              {
                                            Status = stageStatus
                                        } }
                                      } }
            };

            // Act/Assert
            Assert.That(pipeline.Status, Is.EqualTo(pipelineStatus));
        }
示例#21
0
        public void PollAndUpdate_ShouldRaiseAnOnBuildFailedEvent_AndSetJustFailed_WhenAPipelineStatusChangesToFailed(PipelineStatus previousStatus, PipelineStatus nextStatus, bool expectedOnBuildFailedCalled)
        {
            // Arrange
            Result <List <Pipeline> > previousPipelines = null;

            switch (previousStatus)
            {
            case PipelineStatus.Failed:
                previousPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                             {
                                                                                                 Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                                   {
                                                                                                                                       Stages = new List <Stage>()
                                                                                                                                       {
                                                                                                                                           new Stage()
                                                                                                                                           {
                                                                                                                                               Status = StageStatus.Failed
                                                                                                                                           }
                                                                                                                                       }
                                                                                                                                   } }
                                                                                             } });

                break;

            case PipelineStatus.Building:
                previousPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                             {
                                                                                                 Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                                   {
                                                                                                                                       Stages = new List <Stage>()
                                                                                                                                       {
                                                                                                                                           new Stage()
                                                                                                                                           {
                                                                                                                                               Status = StageStatus.Building
                                                                                                                                           }
                                                                                                                                       }
                                                                                                                                   } }
                                                                                             } });

                break;

            case PipelineStatus.Passed:
                previousPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                             {
                                                                                                 Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                                   {
                                                                                                                                       Stages = new List <Stage>()
                                                                                                                                       {
                                                                                                                                           new Stage()
                                                                                                                                           {
                                                                                                                                               Status = StageStatus.Passed
                                                                                                                                           }
                                                                                                                                       }
                                                                                                                                   } }
                                                                                             } });

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(previousStatus), previousStatus, null);
            }

            Result <List <Pipeline> > nextPipelines = null;

            switch (nextStatus)
            {
            case PipelineStatus.Failed:
                nextPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                         {
                                                                                             Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                               {
                                                                                                                                   Stages = new List <Stage>()
                                                                                                                                   {
                                                                                                                                       new Stage()
                                                                                                                                       {
                                                                                                                                           Status = StageStatus.Failed
                                                                                                                                       }
                                                                                                                                   }
                                                                                                                               } }
                                                                                         } });

                break;

            case PipelineStatus.Building:
                nextPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                         {
                                                                                             Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                               {
                                                                                                                                   Stages = new List <Stage>()
                                                                                                                                   {
                                                                                                                                       new Stage()
                                                                                                                                       {
                                                                                                                                           Status = StageStatus.Building
                                                                                                                                       }
                                                                                                                                   }
                                                                                                                               } }
                                                                                         } });

                break;

            case PipelineStatus.Passed:
                nextPipelines = Result <List <Pipeline> > .Valid(new List <Pipeline>() { new Pipeline()
                                                                                         {
                                                                                             Name = "1", PipelineInstances = { new PipelineInstance()
                                                                                                                               {
                                                                                                                                   Stages = new List <Stage>()
                                                                                                                                   {
                                                                                                                                       new Stage()
                                                                                                                                       {
                                                                                                                                           Status = StageStatus.Passed
                                                                                                                                       }
                                                                                                                                   }
                                                                                                                               } }
                                                                                         } });

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(nextStatus), nextStatus, null);
            }

            var gocdServiceFactory = new GocdServiceFactoryFake {
                GocdService = { Pipelines = nextPipelines }
            };
            var service = new ServiceManager(gocdServiceFactory)
            {
                Estate = new Estate(previousPipelines)
            };
            bool onBuildFailedCalled = false;

            service.OnBuildFailed += () => onBuildFailedCalled = true;

            // Act
            service.PollAndUpdate();

            // Assert
            Assert.That(onBuildFailedCalled, Is.EqualTo(expectedOnBuildFailedCalled));
            Assert.That(service.Estate.Pipelines.Single(p => p.Name == "1").JustFailed, Is.EqualTo(expectedOnBuildFailedCalled));
        }
 public PipelineUpdate(PipelineStatus status, double progress)
 {
     Status   = status;
     Progress = progress;
 }