From 19342df9727f0a55c6408e52e1bb3c73f8c017e2 Mon Sep 17 00:00:00 2001 From: Adam Worley Date: Thu, 8 Oct 2020 13:16:18 +0100 Subject: [PATCH] Add tests for BuildEpisodeList(IEnumerable<(int EpisodeNumber, DateTime? Aired)> orderedEpisodes) overload --- src/Ombi.Schedule.Tests/NewsletterTests.cs | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/Ombi.Schedule.Tests/NewsletterTests.cs b/src/Ombi.Schedule.Tests/NewsletterTests.cs index f729e8899..c63f97cdf 100644 --- a/src/Ombi.Schedule.Tests/NewsletterTests.cs +++ b/src/Ombi.Schedule.Tests/NewsletterTests.cs @@ -31,5 +31,66 @@ namespace Ombi.Schedule.Tests yield return new TestCaseData(new List{1}).Returns("1").SetName("Single Episode"); } } + + [Test, TestCaseSource(nameof(EpisodeAndDateListData))] + public string BuildEpisodeListTest(List<(int, DateTime?)> episodes) + { + var ep = new List<(int, DateTime?)>(); + foreach (var i in episodes) + { + ep.Add(i); + } + var result = StringHelper.BuildEpisodeList(ep); + return result; + } + + static IEnumerable EpisodeAndDateListData + { + get + { + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, (DateTime?)null), }).Returns("1").SetName("Single episode date is null "); + + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, new DateTime(2020, 01, 01)), }).Returns("1 2020-01-01").SetName("Simple With Date Single episode"); + + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, new DateTime(2020, 01, 01)), + (2, new DateTime(2020, 01, 02)), + (3, new DateTime(2020, 01, 03)), + (4, new DateTime(2020, 01, 04)), + (5, new DateTime(2020, 01, 05)), + (6, new DateTime(2020, 01, 06)) }).Returns("1-6 2020-01").SetName("Simple With Date 1-6"); + + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, new DateTime(2020, 01, 01)), + (2, new DateTime(2020, 01, 02)), + (3, new DateTime(2020, 01, 03)), + (4, new DateTime(2020, 01, 04)), + (5, new DateTime(2020, 01, 05)), + (6, new DateTime(2020, 01, 06)), + (8, new DateTime(2020, 02, 08)), + (9, new DateTime(2020, 02, 09)),}).Returns("1-6 2020-01, 8-9 2020-02").SetName("Simple With Date 1-6, 8-9"); + + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, new DateTime(2020, 01, 01)), + (2, new DateTime(2020, 01, 02)), + (3, new DateTime(2020, 01, 03)), + (4, new DateTime(2020, 01, 04)), + (5, new DateTime(2020, 01, 05)), + (6, new DateTime(2020, 01, 06)), + (8, new DateTime(2020, 01, 08)), + (9, new DateTime(2020, 02, 09)),}).Returns("1-6 2020-01, 8-9 2020-02").SetName("Simple With Date 1-6, 8-9 overlapping month"); + + + yield return new TestCaseData(new List<(int, DateTime?)> { + (1, new DateTime(2020, 01, 01)), + (99, new DateTime(2020, 02, 27)), + (101, new DateTime(2020, 03, 15)), + (555, new DateTime(2020, 05, 04)), + (468, new DateTime(2020, 06, 05)), + (469, new DateTime(2020, 06, 12)) }).Returns("1 2020-01, 99 2020-02, 101 2020-03, 555 2020-05, 468-469 2020-06").SetName("More Complex with dates"); + } + } } } \ No newline at end of file