public void Render_ShouldThrowException_WhenNegativeTurnedOffLampsValueIsGiven() { var request = new BerlinClockRendererRequest { TurnedOnLampSign = 'X', AmountOfTurnedOnLamps = 1, AmountOfTurnedOffLamps = -1 }; Assert.Throws <Exception>(() => _sut.Render(request)); }
public void Render_ShouldModifyResult_WhenAdditionalFormattingIsGiven() { var expectedValue = "TEST"; var request = new BerlinClockRendererRequest { AdditionalFormatting = (row) => expectedValue, TurnedOnLampSign = 'X', AmountOfTurnedOnLamps = 1, AmountOfTurnedOffLamps = 1 }; var result = _sut.Render(request); Assert.That(result, Is.EqualTo(expectedValue)); }
public string Render(BerlinClockRendererRequest request) { if (request.AmountOfTurnedOffLamps < 0 || request.AmountOfTurnedOnLamps < 0) { throw new Exception("Cannot render negative values"); } var stringBuilder = new StringBuilder(); stringBuilder.Append(request.TurnedOnLampSign, request.AmountOfTurnedOnLamps); stringBuilder.Append(TurnedOffLampSign, request.AmountOfTurnedOffLamps); var row = stringBuilder.ToString(); return(request.AdditionalFormatting != null ? request.AdditionalFormatting(row) : row); }