public void FilterAnimeModelsByAnimeListType_ShouldFilterCorrectly(AnimeListType filterBy, Predicate <MiruAnimeModel> expectedFilterPredicate) { using (var mock = AutoMock.GetLoose()) { // Arrange List <MiruAnimeModel> animeTestModels = new List <MiruAnimeModel> { new MiruAnimeModel { IsOnWatchingList = true, CurrentlyAiring = true }, new MiruAnimeModel { IsOnWatchingList = true, CurrentlyAiring = false }, new MiruAnimeModel { IsOnWatchingList = false, CurrentlyAiring = true } }; var sut = mock.Create <MiruAnimeModelProcessor>(); // Act var filteredList = sut.FilterAnimeModelsByAnimeListType(animeTestModels, filterBy).ToList(); // Assert Assert.True(filteredList.TrueForAll(expectedFilterPredicate)); } }
/// <summary> /// Assigns animes to the correct day of week airing list properties. /// </summary> /// <param name="animeModels"></param> /// <param name="animeListType"></param> public void SetAnimeSortedByAirDayOfWeekAndFilteredByGivenAnimeListType(IEnumerable <MiruAnimeModel> animeModels, AnimeListType animeListType) { animeModels = MiruAnimeModelProcessor.FilterAnimeModelsByAnimeListType(animeModels, animeListType); MondayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Monday); TuesdayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Tuesday); WednesdayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Wednesday); ThursdayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Thursday); FridayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Friday); SaturdayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Saturday); SundayAiringAnimeList = MiruAnimeModelProcessor.FilterAnimeModelsByAirDayOfWeekAndOrderByAirTime(animeModels, DayOfWeek.Sunday); }
private void LoadUserSettings(UserSettings userSettings) { AnimeImageSizeInPixels = userSettings.AnimeImageSize; _selectedDisplayedAnimeList = userSettings.DisplayedAnimeListType; SelectedDisplayedAnimeType = userSettings.DisplayedAnimeType; }
// returns a list of anime models which belong to the specified anime list type public IEnumerable <MiruAnimeModel> FilterAnimeModelsByAnimeListType(IEnumerable <MiruAnimeModel> animeModels, AnimeListType animeListType) { switch (animeListType) { case AnimeListType.AiringAndWatching: animeModels = animeModels.Where(a => a.IsOnWatchingList && a.CurrentlyAiring).ToList(); break; case AnimeListType.Watching: animeModels = animeModels.Where(a => a.IsOnWatchingList).ToList(); break; case AnimeListType.Season: animeModels = animeModels.Where(a => a.CurrentlyAiring).ToList(); break; case AnimeListType.Senpai: animeModels = animeModels.Where(a => a.IsOnSenpai).ToList(); break; } return(animeModels); }