From 3b12dee81909178f6a6159884907764f298987c0 Mon Sep 17 00:00:00 2001 From: Jon Crall Date: Tue, 30 Dec 2025 16:08:21 -0500 Subject: [PATCH] Allow tests to access internal members --- .../Pages/MediaCardSelectionHelperTests.cs | 4 ++-- ErsatzTV/Pages/MediaCardSelectionHelper.cs | 24 ------------------- ErsatzTV/Pages/MultiSelectBase.cs | 15 +++++++++++- ErsatzTV/Properties/AssemblyInfo.cs | 3 +++ 4 files changed, 19 insertions(+), 27 deletions(-) delete mode 100644 ErsatzTV/Pages/MediaCardSelectionHelper.cs create mode 100644 ErsatzTV/Properties/AssemblyInfo.cs diff --git a/ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs b/ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs index c39e911e0..e287f4ed8 100644 --- a/ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs +++ b/ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs @@ -18,7 +18,7 @@ public class MediaCardSelectionHelperTests var first = new MediaCardViewModel(2, "First", "Sub", "First", "", Core.Domain.MediaItemState.Normal, false); var second = new MediaCardViewModel(3, "Second", "Sub", "Second", "", Core.Domain.MediaItemState.Normal, false); - MediaCardViewModel last = MediaCardSelectionHelper.SelectAllPageItems(selected, new[] { first, second }); + MediaCardViewModel last = MultiSelectBase.SelectAllPageItems(selected, new[] { first, second }); selected.ShouldBe(new[] { first, second }, ignoreOrder: true); last.ShouldBe(second); @@ -30,7 +30,7 @@ public class MediaCardSelectionHelperTests var existingCard = new MediaCardViewModel(1, "Existing", "Sub", "Existing", "", Core.Domain.MediaItemState.Normal, false); var selected = new HashSet { existingCard }; - MediaCardViewModel last = MediaCardSelectionHelper.SelectAllPageItems(selected, []); + MediaCardViewModel last = MultiSelectBase.SelectAllPageItems(selected, []); selected.ShouldBeEmpty(); last.ShouldBeNull(); diff --git a/ErsatzTV/Pages/MediaCardSelectionHelper.cs b/ErsatzTV/Pages/MediaCardSelectionHelper.cs deleted file mode 100644 index 68e930102..000000000 --- a/ErsatzTV/Pages/MediaCardSelectionHelper.cs +++ /dev/null @@ -1,24 +0,0 @@ -using ErsatzTV.Application.MediaCards; -using System.Collections.Generic; -using System.Linq; - -namespace ErsatzTV.Pages; - -public static class MediaCardSelectionHelper -{ - public static MediaCardViewModel SelectAllPageItems( - ISet selectedItems, - IEnumerable cards) - { - selectedItems.Clear(); - - MediaCardViewModel last = default; - foreach (MediaCardViewModel card in cards ?? Enumerable.Empty()) - { - last = card; - selectedItems.Add(card); - } - - return last; - } -} diff --git a/ErsatzTV/Pages/MultiSelectBase.cs b/ErsatzTV/Pages/MultiSelectBase.cs index 75f1ffe26..e631f6615 100644 --- a/ErsatzTV/Pages/MultiSelectBase.cs +++ b/ErsatzTV/Pages/MultiSelectBase.cs @@ -42,8 +42,9 @@ public class MultiSelectBase : FragmentNavigationBase protected void SelectAllPageItems(IEnumerable cards) { - MediaCardViewModel lastSelected = MediaCardSelectionHelper.SelectAllPageItems(SelectedItems, cards); + MediaCardViewModel lastSelected = SelectAllPageItems(SelectedItems, cards); _recentlySelected = Optional(lastSelected); + StateHasChanged(); } protected void ClearSelection() @@ -247,4 +248,16 @@ public class MultiSelectBase : FragmentNavigationBase }); } } + + internal static MediaCardViewModel SelectAllPageItems( + ISet selectedItems, + IEnumerable cards) + { + List cardList = (cards ?? Enumerable.Empty()).ToList(); + + selectedItems.Clear(); + selectedItems.UnionWith(cardList); + + return cardList.LastOrDefault(); + } } diff --git a/ErsatzTV/Properties/AssemblyInfo.cs b/ErsatzTV/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..523590b14 --- /dev/null +++ b/ErsatzTV/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("ErsatzTV.Core.Tests")]