public async Task SaveAndLoadReferee() { var countriesList = new List <Country> { new Country { Id = 1, Name = "England", Code = "EN" } }; var refereesList = new List <Referee>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockRefereeRepo = new Mock <IRepository <Referee> >(); mockRefereeRepo.Setup(r => r.All()).Returns(refereesList.AsQueryable()); mockRefereeRepo.Setup(r => r.AddAsync(It.IsAny <Referee>())).Callback <Referee>(referee => refereesList.Add(referee)); mockRefereeRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => refereesList.FirstOrDefault(c => c.Id == id)); var refereeService = new RefereeService(mockRefereeRepo.Object, mockCountryRepo.Object); var refereeViewModel = new RefereeViewModel { Name = "Michael Oliver", CountryId = 1, CountryName = "England", BirthDate = new DateTime(1990, 1, 1) }; await refereeService.CreateAsync(refereeViewModel); var savedReferee = refereeService.Get(10, false); var lastSavedReferee = refereeService.GetAll().LastOrDefault(); Assert.Null(savedReferee); Assert.Equal("Michael Oliver", lastSavedReferee.Name); Assert.Equal("England", refereeViewModel.CountryName); Assert.Equal(new DateTime(1990, 1, 1), refereeViewModel.BirthDate); Assert.NotNull(lastSavedReferee.Country); }
public async Task SaveAndDeleteReferee() { var countriesList = new List <Country> { new Country { Id = 1, Name = "England", Code = "EN" } }; var refereesList = new List <Referee>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockRefereeRepo = new Mock <IRepository <Referee> >(); mockRefereeRepo.Setup(r => r.All()).Returns(refereesList.AsQueryable()); mockRefereeRepo.Setup(r => r.AddAsync(It.IsAny <Referee>())).Callback <Referee>(referee => refereesList.Add(new Referee { Id = 1, Name = referee.Name, Country = referee.Country })); mockRefereeRepo.Setup(r => r.Delete(It.IsAny <Referee>())).Callback <Referee>(referee => refereesList.Remove(referee)); var refereeService = new RefereeService(mockRefereeRepo.Object, mockCountryRepo.Object); var refereeViewModel = new RefereeViewModel { Name = "Michael Oliver", CountryId = 1 }; await refereeService.CreateAsync(refereeViewModel); await refereeService.DeleteAsync(1); Assert.Empty(refereeService.GetAll(false)); }