public async Task GetAllFavAdsOnCurrentUserTests() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); var carRepository = new EfDeletableEntityRepository <Car>(new ApplicationDbContext(options.Options)); var viewsRepository = new EfDeletableEntityRepository <AdView>(new ApplicationDbContext(options.Options)); var commentRepository = new EfDeletableEntityRepository <Comment>(new ApplicationDbContext(options.Options)); var searchModelRepository = new EfDeletableEntityRepository <SearchModel>(new ApplicationDbContext(options.Options)); var favoriteRepository = new EfDeletableEntityRepository <UserCarFavorite>(new ApplicationDbContext(options.Options)); var userManager = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var adService = new Mock <IAdService>(); var service = new MyAccountService(carRepository, adService.Object, viewsRepository, commentRepository, searchModelRepository, favoriteRepository); await SeedData(carRepository); var car1 = await carRepository.All().FirstOrDefaultAsync(x => x.MoreInformation == "firstCar"); var car2 = await carRepository.All().FirstOrDefaultAsync(x => x.MoreInformation == "secondCar"); await service.AddAdToFavAsync(car1.Id, "1"); await service.AddAdToFavAsync(car2.Id, "1"); AutoMapperConfig.RegisterMappings(typeof(UserAdViewModel).Assembly); var result = await service.GetAllFavAdsOnCurrentUserAsync <UserAdViewModel>("1"); Assert.Equal(2, result.Count); }
public async Task RemoveFavAdAsync() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); var carRepository = new EfDeletableEntityRepository <Car>(new ApplicationDbContext(options.Options)); var viewsRepository = new EfDeletableEntityRepository <AdView>(new ApplicationDbContext(options.Options)); var commentRepository = new EfDeletableEntityRepository <Comment>(new ApplicationDbContext(options.Options)); var searchModelRepository = new EfDeletableEntityRepository <SearchModel>(new ApplicationDbContext(options.Options)); var favoriteRepository = new EfDeletableEntityRepository <UserCarFavorite>(new ApplicationDbContext(options.Options)); var userManager = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var adService = new Mock <IAdService>(); var service = new MyAccountService(carRepository, adService.Object, viewsRepository, commentRepository, searchModelRepository, favoriteRepository); var car = new Car(); await carRepository.AddAsync(car); await carRepository.SaveChangesAsync(); var userId = "UserId"; var carId = car.Id; await service.AddAdToFavAsync(carId, userId); await service.RemoveFavAdAsync(carId, userId); var userCarFavRecord = await favoriteRepository.All().FirstOrDefaultAsync(x => x.UserId == userId); Assert.Null(userCarFavRecord); }
public async Task AddToFavWithNotFoundCarShouldReturnNullRefferenceException() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); var carRepository = new EfDeletableEntityRepository <Car>(new ApplicationDbContext(options.Options)); var viewsRepository = new EfDeletableEntityRepository <AdView>(new ApplicationDbContext(options.Options)); var commentRepository = new EfDeletableEntityRepository <Comment>(new ApplicationDbContext(options.Options)); var searchModelRepository = new EfDeletableEntityRepository <SearchModel>(new ApplicationDbContext(options.Options)); var favoriteRepository = new EfDeletableEntityRepository <UserCarFavorite>(new ApplicationDbContext(options.Options)); var userManager = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var adService = new Mock <IAdService>(); var service = new MyAccountService(carRepository, adService.Object, viewsRepository, commentRepository, searchModelRepository, favoriteRepository); var userId = "UserId"; var carId = "notFoundId"; await Assert.ThrowsAsync <NullReferenceException>(async() => await service.AddAdToFavAsync(carId, userId)); }