|
| 1 | +using System; |
| 2 | +using NUnit.Framework; |
| 3 | +using RxTelegram.Bot.Utils; |
| 4 | + |
| 5 | +namespace RxTelegram.Bot.UnitTests; |
| 6 | + |
| 7 | +[TestFixture] |
| 8 | +public class HexToRgb24Tests |
| 9 | +{ |
| 10 | + [TestCase("#FF0000", ExpectedResult = 16711680)] // Red |
| 11 | + [TestCase("#00FF00", ExpectedResult = 65280)] // Green |
| 12 | + [TestCase("#0000FF", ExpectedResult = 255)] // Blue |
| 13 | + [TestCase("#000000", ExpectedResult = 0)] // Black |
| 14 | + [TestCase("#FFFFFF", ExpectedResult = 16777215)] // White |
| 15 | + [TestCase("#ABCDEF", ExpectedResult = 11259375)] // Random color |
| 16 | + public int Convert_ValidHexColor_ReturnsRgbValue(string hexColor) => HexToRgb24.Convert(hexColor); |
| 17 | + |
| 18 | + [TestCase("#0000000")] |
| 19 | + [TestCase("#00000000")] |
| 20 | + public void Convert_InvalidHexLength_ThrowsArgumentException(string hexColor) => |
| 21 | + Assert.Throws<ArgumentException>(() => HexToRgb24.Convert(hexColor)); |
| 22 | + |
| 23 | + [TestCase("#G00000")] |
| 24 | + [TestCase("#00000G")] |
| 25 | + public void Convert_InvalidHexColor_ThrowsFormatException(string hexColor) => |
| 26 | + Assert.Throws<FormatException>(() => HexToRgb24.Convert(hexColor)); |
| 27 | + |
| 28 | + [TestCase("#0000000")] |
| 29 | + [TestCase("#00000000")] |
| 30 | + public void TryConvert_InvalidHexLength_ThrowsArgumentException(string hexColor) => |
| 31 | + Assert.That(HexToRgb24.TryConvert(hexColor, out _), Is.False); |
| 32 | + |
| 33 | + [TestCase("#G00000")] |
| 34 | + [TestCase("#00000G")] |
| 35 | + public void TryConvert_InvalidHexColor_ThrowsFormatException(string hexColor) => |
| 36 | + Assert.That(HexToRgb24.TryConvert(hexColor, out _), Is.False); |
| 37 | + |
| 38 | + [TestCase("#FF0000", ExpectedResult = true)] // Red |
| 39 | + [TestCase("#00FF00", ExpectedResult = true)] // Green |
| 40 | + [TestCase("#0000FF", ExpectedResult = true)] // Blue |
| 41 | + [TestCase("#000000", ExpectedResult = true)] // Black |
| 42 | + [TestCase("#FFFFFF", ExpectedResult = true)] // White |
| 43 | + [TestCase("#ABCDEF", ExpectedResult = true)] // Random color |
| 44 | + [TestCase("#G00000", ExpectedResult = false)] |
| 45 | + [TestCase("#00000G", ExpectedResult = false)] |
| 46 | + [TestCase("#0000000", ExpectedResult = false)] |
| 47 | + [TestCase("#00000000", ExpectedResult = false)] |
| 48 | + public bool TryConvert_ValidHexColor_ReturnsTrue(string hexColor) => HexToRgb24.TryConvert(hexColor, out _); |
| 49 | + |
| 50 | + [TestCase("#FF0000", 16711680)] // Red |
| 51 | + [TestCase("#00FF00", 65280)] // Green |
| 52 | + [TestCase("#0000FF", 255)] // Blue |
| 53 | + [TestCase("#000000", 0)] // Black |
| 54 | + [TestCase("#FFFFFF", 16777215)] // White |
| 55 | + [TestCase("#ABCDEF", 11259375)] // Random color |
| 56 | + public void TryConvert_ValidHexColor_ReturnsRgbValue(string hexColor, int expected) |
| 57 | + { |
| 58 | + HexToRgb24.TryConvert(hexColor, out var result); |
| 59 | + Assert.That(result, Is.EqualTo(expected)); |
| 60 | + } |
| 61 | + |
| 62 | +} |
0 commit comments