public async Task AddAsyncThrowsWhenTheInputModelIsNull() { // Arrange var mapperMock = new Mock <IMapper>(); var repositoryMock = new Mock <IDeletableEntityRepository <Gym> >(); var gymsService = new GymsService(repositoryMock.Object, mapperMock.Object); // Assert await Assert.ThrowsAsync <ArgumentNullException>(async() => { // Act await gymsService.AddAsync(null, new ImageInputModel()); }); }
public async Task AddMapsTheInputModelAndImageAndAddsThem( string name, string description, string cityId, bool nullImage, string imageSource) { // Arrange AutoMapperConfig.RegisterMappings(typeof(Test).Assembly, typeof(ErrorViewModel).Assembly); var saved = true; var gymsList = new List <Gym>(); var repositoryMock = new Mock <IDeletableEntityRepository <Gym> >(); repositoryMock.Setup(x => x.AddAsync(It.IsAny <Gym>())) .Callback((Gym gym) => { gymsList.Add(gym); }); repositoryMock.Setup(x => x.SaveChangesAsync()) .Callback(() => { saved = true; }); var gymViewModel = new GymInputModel() { Name = name, CityId = cityId, Description = description, }; var imageInputModel = new ImageInputModel() { Source = imageSource, }; if (nullImage) { imageInputModel = null; } var gymsService = new GymsService(repositoryMock.Object, AutoMapperConfig.MapperInstance); // Act await gymsService.AddAsync(gymViewModel, imageInputModel); // Assert var actualGym = gymsList[0]; Assert.True(saved); Assert.Equal(name, actualGym.Name); Assert.Equal(cityId, actualGym.CityId); Assert.Equal(description, actualGym.Description); var actualImage = actualGym.Image; if (nullImage) { Assert.Null(actualImage); } else { Assert.Equal(imageSource, actualImage.Source); } }
public async Task EditAsyncEditsThePropertiesAndSavesTheChanges( string name, string description, string cityId, string newName, string newDescription, string newCityId, bool imageNull, string imageSource, string newImageSource) { // Arrange AutoMapperConfig.RegisterMappings(typeof(Test).Assembly, typeof(ErrorViewModel).Assembly); var saved = true; var gym = new Gym() { Name = name, Description = description, CityId = cityId, }; var gymsList = new List <Gym>() { new Gym(), gym, new Gym(), new Gym(), }; var repositoryMock = new Mock <IDeletableEntityRepository <Gym> >(); repositoryMock.Setup(x => x.All()) .Returns(gymsList.AsQueryable()); repositoryMock.Setup(x => x.SaveChangesAsync()) .Callback(() => { saved = true; }); var gymEditModel = new GymInputModel() { Name = newName, Description = newDescription, CityId = newCityId, }; var imageEditModel = new ImageInputModel() { Source = newImageSource, }; if (imageNull) { imageEditModel = null; } var gymsService = new GymsService(repositoryMock.Object, AutoMapperConfig.MapperInstance); // Act await gymsService.EditAsync(gym.Id, gymEditModel, imageEditModel); // Assert Assert.True(saved); Assert.Equal(newName, gym.Name); Assert.Equal(newDescription, gym.Description); Assert.Equal(newCityId, gym.CityId); var actualImage = gym.Image; if (imageNull) { Assert.Equal(imageSource, actualImage.Source); } else { Assert.Equal(newImageSource, actualImage.Source); } }