Browse Source

Allow tests to access internal members

pull/2738/head
Jon Crall 7 months ago
parent
commit
3b12dee819
  1. 4
      ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs
  2. 24
      ErsatzTV/Pages/MediaCardSelectionHelper.cs
  3. 15
      ErsatzTV/Pages/MultiSelectBase.cs
  4. 3
      ErsatzTV/Properties/AssemblyInfo.cs

4
ErsatzTV.Core.Tests/Pages/MediaCardSelectionHelperTests.cs

@ -18,7 +18,7 @@ public class MediaCardSelectionHelperTests @@ -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<Search>.SelectAllPageItems(selected, new[] { first, second });
selected.ShouldBe(new[] { first, second }, ignoreOrder: true);
last.ShouldBe(second);
@ -30,7 +30,7 @@ public class MediaCardSelectionHelperTests @@ -30,7 +30,7 @@ public class MediaCardSelectionHelperTests
var existingCard = new MediaCardViewModel(1, "Existing", "Sub", "Existing", "", Core.Domain.MediaItemState.Normal, false);
var selected = new HashSet<MediaCardViewModel> { existingCard };
MediaCardViewModel last = MediaCardSelectionHelper.SelectAllPageItems(selected, []);
MediaCardViewModel last = MultiSelectBase<Search>.SelectAllPageItems(selected, []);
selected.ShouldBeEmpty();
last.ShouldBeNull();

24
ErsatzTV/Pages/MediaCardSelectionHelper.cs

@ -1,24 +0,0 @@ @@ -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<MediaCardViewModel> selectedItems,
IEnumerable<MediaCardViewModel> cards)
{
selectedItems.Clear();
MediaCardViewModel last = default;
foreach (MediaCardViewModel card in cards ?? Enumerable.Empty<MediaCardViewModel>())
{
last = card;
selectedItems.Add(card);
}
return last;
}
}

15
ErsatzTV/Pages/MultiSelectBase.cs

@ -42,8 +42,9 @@ public class MultiSelectBase<T> : FragmentNavigationBase @@ -42,8 +42,9 @@ public class MultiSelectBase<T> : FragmentNavigationBase
protected void SelectAllPageItems(IEnumerable<MediaCardViewModel> 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<T> : FragmentNavigationBase @@ -247,4 +248,16 @@ public class MultiSelectBase<T> : FragmentNavigationBase
});
}
}
internal static MediaCardViewModel SelectAllPageItems(
ISet<MediaCardViewModel> selectedItems,
IEnumerable<MediaCardViewModel> cards)
{
List<MediaCardViewModel> cardList = (cards ?? Enumerable.Empty<MediaCardViewModel>()).ToList();
selectedItems.Clear();
selectedItems.UnionWith(cardList);
return cardList.LastOrDefault();
}
}

3
ErsatzTV/Properties/AssemblyInfo.cs

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("ErsatzTV.Core.Tests")]
Loading…
Cancel
Save