public async Task GetAllSeasonsAsKeyValuePairs() { var countriesList = new List <Country> { new Country { Id = 1, Name = "England" } }; var championshipsList = new List <Championship> { new Championship { Id = 1, Name = "Premier League" } }; var seasonsList = new List <Season>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.All()).Returns(countriesList.AsQueryable()); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => championshipsList.FirstOrDefault(c => c.Id == id)); var mockSeasonRepo = new Mock <IRepository <Season> >(); mockSeasonRepo.Setup(r => r.All()).Returns(seasonsList.AsQueryable()); mockSeasonRepo.Setup(r => r.AddAsync(It.IsAny <Season>())).Callback <Season>(season => seasonsList.Add(new Season { Id = 1, Name = season.Name, Championship = season.Championship })); var seasonService = new SeasonService(mockSeasonRepo.Object, mockChampionshipRepo.Object); var firstSeasonViewModel = new SeasonViewModel { Name = "2020/21", ChampionshipId = 1, ChampionshipsItems = new ChampionshipService( mockChampionshipRepo.Object, mockCountryRepo.Object) .GetAllAsKeyValuePairs() }; var secondSeasonViewModel = new SeasonViewModel { Name = "2021/22", ChampionshipId = 1 }; await seasonService.CreateAsync(firstSeasonViewModel); await seasonService.CreateAsync(secondSeasonViewModel); var keyValuePairs = seasonService.GetAllAsKeyValuePairs().ToList(); Assert.True(keyValuePairs.Count == 2); Assert.True(firstSeasonViewModel.ChampionshipsItems.Count() == 1); }