Esempio n. 1
0
        public void SetSignalLight(LastBuildsStatus buildsStatus, bool?enableFlashing = true, byte brightness = 5)
        {
            var isBuildInProgress = buildsStatus.AggregatedBuildStatus.Equals(AggregatedBuildStatus.InProgress);

            if (buildsStatus.AggregatedBuildStatus.Equals(AggregatedBuildStatus.None))
            {
                _signalLightController.TurnOffAll();
            }
            else
            {
                _signalLightController.TurnOffAll();

                var flash = enableFlashing.HasValue && enableFlashing.Value && isBuildInProgress;

                switch (buildsStatus.AggregatedBuildResult)
                {
                case AggregatedBuildResult.Failed:
                    _signalLightController.TurnOnColor(SignalLightColor.Red, brightness, flash);
                    break;

                case AggregatedBuildResult.PartiallySucceeded:
                    _signalLightController.TurnOnColor(SignalLightColor.Orange, brightness, flash);
                    break;

                case AggregatedBuildResult.Succeeded:
                    _signalLightController.TurnOnColor(SignalLightColor.Green, brightness, flash);
                    break;

                case AggregatedBuildResult.None:
                    _signalLightController.TurnOffAll();
                    break;
                }
            }
        }
Esempio n. 2
0
        private static void ProcessBuildsStatus(LastBuildsStatus buildsStatus, double brightness, bool?enableFlashing)
        {
            _buildStatusLightController?.SetSignalLight(buildsStatus, enableFlashing, Convert.ToByte(brightness));

            _logger?.Information(
                $"Build status: {buildsStatus.AggregatedBuildStatus.ToString()} | " +
                $"Build result: {buildsStatus.AggregatedBuildResult.ToString()}");
        }
Esempio n. 3
0
        private void ProcessBuildsStatus(LastBuildsStatus buildsStatus)
        {
            _buildStatusLightController?.SetSignalLight(
                buildsStatus,
                LighthouseSettings.EnableFlashing,
                Convert.ToByte(LighthouseSettings.Brightness));

            _logger?.Information(
                $"Build status: {buildsStatus.AggregatedBuildStatus.ToString()} | " +
                $"Build result: {buildsStatus.AggregatedBuildResult.ToString()}");
        }
Esempio n. 4
0
        public void WhenThereAreNoLastBuildStatusResults_SignalLightIsTurnedOff()
        {
            var signalLightControllerMock = new Mock <IControlSignalLight>();

            var controller = new BuildStatusLightController(signalLightControllerMock.Object);

            var lastBuildStatusses = new LastBuildsStatus
            {
                AggregatedBuildStatus = AggregatedBuildStatus.None
            };

            controller.SetSignalLight(lastBuildStatusses);

            signalLightControllerMock.Verify(x => x.TurnOffAll(), Times.Once);
        }
Esempio n. 5
0
        public void WhenLastBuildSucceededAndBuildInProgress_SignalLightIsFlashingGreen()
        {
            var signalLightControllerMock = new Mock <IControlSignalLight>();

            var controller = new BuildStatusLightController(signalLightControllerMock.Object);

            var lastBuildStatusses = new LastBuildsStatus
            {
                AggregatedBuildResult = AggregatedBuildResult.Succeeded,
                AggregatedBuildStatus = AggregatedBuildStatus.InProgress
            };

            controller.SetSignalLight(lastBuildStatusses);

            signalLightControllerMock.Verify(x => x.TurnOffAll(), Times.Once);
            signalLightControllerMock.Verify(x => x.TurnOnColor(SignalLightColor.Green, It.IsAny <byte>(), true), Times.Once);
        }
Esempio n. 6
0
        public void WhenLastBuildFailedAndNoBuildInProgress_SignalLightIsTurnedRed()
        {
            var signalLightControllerMock = new Mock <IControlSignalLight>();

            var controller = new BuildStatusLightController(signalLightControllerMock.Object);

            var lastBuildStatusses = new LastBuildsStatus
            {
                AggregatedBuildResult = AggregatedBuildResult.Failed,
                AggregatedBuildStatus = AggregatedBuildStatus.Completed
            };

            controller.SetSignalLight(lastBuildStatusses);

            signalLightControllerMock.Verify(x => x.TurnOffAll(), Times.Once);
            signalLightControllerMock.Verify(x => x.TurnOnColor(SignalLightColor.Red, It.IsAny <byte>(), false), Times.Once);
        }