public async Task DeleteNotExistingChampionship()
        {
            var countriesList = new List <Country> {
                new Country {
                    Id = 1, Name = "Italy", Code = "IT"
                }
            };
            var championshipsList = new List <Championship>();

            var mockCountryRepo = new Mock <IRepository <Country> >();

            var mockChampionshipRepo = new Mock <IRepository <Championship> >();

            mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable());

            var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object);

            await Assert.ThrowsAsync <Exception>(() => championshipService.DeleteAsync(1));
        }
        public async Task SaveAndDeleteChampionship()
        {
            var countriesList = new List <Country> {
                new Country {
                    Id = 1, Name = "Italy", Code = "IT"
                }
            };
            var championshipsList = new List <Championship>();

            var mockCountryRepo = new Mock <IRepository <Country> >();

            mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id));

            var mockChampionshipRepo = new Mock <IRepository <Championship> >();

            mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable());
            mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(new Championship
            {
                Id      = 1,
                Name    = championship.Name,
                Country = championship.Country
            }));
            mockChampionshipRepo.Setup(r => r.Delete(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Remove(championship));

            var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object);

            var championshipViewModel = new ChampionshipViewModel
            {
                Name      = "Serie A",
                CountryId = 1
            };

            await championshipService.CreateAsync(championshipViewModel);

            await championshipService.DeleteAsync(1);

            Assert.Empty(championshipService.GetAll(false));
        }