public async Task IfHasNavigationAndColorBlack_ReturnsOneCars() { //Arrange var carQueryOptions = new CarQueryOptions { HasHeatedSeats = true, HasNavigation = false }; var mockICarRepo = new Mock <ICarRepository>(); var mockReturn = new List <Car>() { new Car() { Color = "Red" }, }; mockICarRepo.Setup(repo => repo.GetCars(carQueryOptions)) .Returns(Task.FromResult <IEnumerable <Car> >(mockReturn)); var carController = new CarsController(mockICarRepo.Object); //Act var result = await carController.GetCars(carQueryOptions); //Assert Assert.Single(result); }
public async Task IfHasNoOptionsSelected_ReturnsNineCars() { //Arrange var carQueryOptions = new CarQueryOptions { HasHeatedSeats = true, HasNavigation = false }; var mockICarRepo = new Mock <ICarRepository>(); var mockReturn = new List <Car>() { new Car(), new Car(), new Car(), new Car(), new Car(), new Car(), new Car(), new Car(), new Car() }; mockICarRepo.Setup(repo => repo.GetCars(carQueryOptions)) .Returns(Task.FromResult <IEnumerable <Car> >(mockReturn)); var carController = new CarsController(mockICarRepo.Object); //Act var result = await carController.GetCars(carQueryOptions); //Assert Assert.Equal(9, result.Count <Car>()); }
public async Task <IEnumerable <Car> > GetCars(CarQueryOptions options) { IQueryable <Car> cars = _context.Cars; cars = ApplyFiltering(cars, options); return(await cars.ToListAsync()); }
private IQueryable <Car> ApplyFiltering(IQueryable <Car> cars, CarQueryOptions options) { if (!String.IsNullOrEmpty(options.Color)) { cars = cars.Where(car => car.Color.Equals(options.Color)); } if (options.HasSunroof) { cars = cars.Where(c => c.HasSunroof); } if (options.IsFourWheelDrive) { cars = cars.Where(c => c.IsFourWheelDrive); } if (options.HasLowMiles) { cars = cars.Where(c => c.HasLowMiles); } if (options.HasPowerWindows) { cars = cars.Where(c => c.HasPowerWindows); } if (options.HasNavigation) { cars = cars.Where(c => c.HasNavigation); } if (options.HasHeatedSeats) { cars = cars.Where(c => c.HasHeatedSeats); } return(cars); }
public async Task <IEnumerable <Car> > GetCars(CarQueryOptions options) { var cars = await _repository.GetCars(options); return(cars); }