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));
        }