/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs

https://github.com/NzbDrone/NzbDrone · C# · 95 lines · 87 code · 8 blank · 0 comment · 2 complexity · 16ba884ebb2c8b6349fa53103ebcb3b0 MD5 · raw file

  1. using System.Linq;
  2. using System.Collections.Generic;
  3. using FluentAssertions;
  4. using NUnit.Framework;
  5. using NzbDrone.Core.Profiles.Qualities;
  6. using NzbDrone.Core.Qualities;
  7. using NzbDrone.Core.Test.Framework;
  8. namespace NzbDrone.Core.Test.Qualities
  9. {
  10. [TestFixture]
  11. public class QualityFixture : CoreTest
  12. {
  13. public static object[] FromIntCases =
  14. {
  15. new object[] {0, Quality.Unknown},
  16. new object[] {1, Quality.SDTV},
  17. new object[] {2, Quality.DVD},
  18. new object[] {3, Quality.WEBDL1080p},
  19. new object[] {4, Quality.HDTV720p},
  20. new object[] {5, Quality.WEBDL720p},
  21. new object[] {6, Quality.Bluray720p},
  22. new object[] {7, Quality.Bluray1080p},
  23. new object[] {8, Quality.WEBDL480p},
  24. new object[] {9, Quality.HDTV1080p},
  25. new object[] {10, Quality.RAWHD},
  26. new object[] {16, Quality.HDTV2160p},
  27. new object[] {18, Quality.WEBDL2160p},
  28. new object[] {19, Quality.Bluray2160p},
  29. };
  30. public static object[] ToIntCases =
  31. {
  32. new object[] {Quality.Unknown, 0},
  33. new object[] {Quality.SDTV, 1},
  34. new object[] {Quality.DVD, 2},
  35. new object[] {Quality.WEBDL1080p, 3},
  36. new object[] {Quality.HDTV720p, 4},
  37. new object[] {Quality.WEBDL720p, 5},
  38. new object[] {Quality.Bluray720p, 6},
  39. new object[] {Quality.Bluray1080p, 7},
  40. new object[] {Quality.WEBDL480p, 8},
  41. new object[] {Quality.HDTV1080p, 9},
  42. new object[] {Quality.RAWHD, 10},
  43. new object[] {Quality.HDTV2160p, 16},
  44. new object[] {Quality.WEBDL2160p, 18},
  45. new object[] {Quality.Bluray2160p, 19},
  46. };
  47. [Test, TestCaseSource(nameof(FromIntCases))]
  48. public void should_be_able_to_convert_int_to_qualityTypes(int source, Quality expected)
  49. {
  50. var quality = (Quality)source;
  51. quality.Should().Be(expected);
  52. }
  53. [Test, TestCaseSource(nameof(ToIntCases))]
  54. public void should_be_able_to_convert_qualityTypes_to_int(Quality source, int expected)
  55. {
  56. var i = (int)source;
  57. i.Should().Be(expected);
  58. }
  59. public static List<QualityProfileQualityItem> GetDefaultQualities(params Quality[] allowed)
  60. {
  61. var qualities = new List<Quality>
  62. {
  63. Quality.Unknown,
  64. Quality.SDTV,
  65. Quality.WEBDL480p,
  66. Quality.DVD,
  67. Quality.HDTV720p,
  68. Quality.HDTV1080p,
  69. Quality.HDTV2160p,
  70. Quality.RAWHD,
  71. Quality.WEBDL720p,
  72. Quality.WEBDL1080p,
  73. Quality.WEBDL2160p,
  74. Quality.Bluray720p,
  75. Quality.Bluray1080p,
  76. Quality.Bluray2160p,
  77. };
  78. if (allowed.Length == 0)
  79. allowed = qualities.ToArray();
  80. var items = qualities
  81. .Except(allowed)
  82. .Concat(allowed)
  83. .Select(v => new QualityProfileQualityItem { Quality = v, Allowed = allowed.Contains(v) }).ToList();
  84. return items;
  85. }
  86. }
  87. }