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; } } }
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()}"); }
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()}"); }
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); }
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); }
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); }