public async Task <IEnumerable <DriverDto> > GetDrivers(DriversResourceParameters driversResourceParameters) { try { _logger.LogInformation(LoggingEvents.ListItems, "Get all Drivers with filter", null); if (driversResourceParameters == null) { throw new ArgumentNullException(nameof(driversResourceParameters)); } if (string.IsNullOrWhiteSpace(driversResourceParameters.Name)) { return(await GetDrivers()); } _logger.LogInformation(LoggingEvents.ListItems, "Get all Drivers with name filter", null); var nameFilter = driversResourceParameters.Name.Trim().ToLower(); var drivers = await _driversRepository.GetByName(NameToTitleCase(nameFilter)); if (drivers.Count() == 0) { _logger.LogInformation(LoggingEvents.GetItem, "No Drivers found", null); return(Enumerable.Empty <DriverDto>()); } return(drivers.Select(d => d.Map())); } catch (Exception ex) { _logger.LogError(LoggingEvents.ListItems, ex, ex.Message, null); throw; } }
public async Task <IActionResult> Get([FromQuery] DriversResourceParameters driversResourceParameters) { _logger.LogInformation("API ENTRY: Inside get all drivers API call."); var drivers = await _driversService.GetDrivers(driversResourceParameters); return(Ok(drivers)); }
public async void DriversController_GetAll_Valid() { // Arrange var mockDriver = MockDriverData.GetAllModelListAsync(); DriversResourceParameters parameters = new DriversResourceParameters { }; var mockDriverService = new MockDriverService().MockGetAll(mockDriver); var mockLogging = new Mock <ILogger <DriversController> >(); var controller = new DriversController(mockDriverService.Object, mockLogging.Object); // Act var result = await controller.Get(parameters); // Assert Assert.IsAssignableFrom <IActionResult>(result); mockDriverService.VerifyGetAll(Times.Once()); }
public async void DriversService_GetAllFilter_NoDrivers() { // Arrange var mockDriver = MockDriverData.GetEmptyEntityListAsync(); DriversResourceParameters parameters = new DriversResourceParameters { Name = "Vettel" }; var mockDriverRepo = new MockDriverRepository().MockGetByName(mockDriver); var mockDriverLoggerRepo = new MockLoggerRepository <DriversService>(); var mockDriversService = new DriversService(mockDriverRepo.Object, mockDriverLoggerRepo.Object); // Act var drivers = await mockDriversService.GetDrivers(parameters); //Assert Assert.Empty(drivers); mockDriverRepo.VerifyGetByNameForDriver(Times.Once()); }
public async void DriversController_GetAll_Empty() { // Arrange var mockDriver = MockDriverData.GetEmptyModelListAsync(); DriversResourceParameters parameters = new DriversResourceParameters { }; var mockDriverService = new MockDriverService().MockGetAll(mockDriver); var mockLogging = new Mock <ILogger <DriversController> >(); var controller = new DriversController(mockDriverService.Object, mockLogging.Object); // Act var result = await controller.Get(parameters); // Assert var okResult = result.Should().BeOfType <OkObjectResult>().Subject; var Driver = okResult.Value.Should().BeAssignableTo <IEnumerable <DriverDto> >().Subject; Driver.Count().Should().Be(0); mockDriverService.VerifyGetAll(Times.Once()); }