public void Should_Return_Correct_Filtered_Drones_By_Filter(String droneCode, Int32?droneType, Int32 count) { Mock <IDroneRepository> droneRepository = new Mock <IDroneRepository>(); droneRepository.Setup(_ => _.GetAll(It.IsAny <Expression <Func <Drone, Boolean> > >(), It.IsAny <Func <IQueryable <Drone>, IQueryable <Drone> > >())).Returns(GetTestDrones()); DroneService droneService = new DroneService(droneRepository.Object); DroneListFilter filter = new DroneListFilter { DroneCode = droneCode, DroneType = droneType }; ICollection <Drone> filteredDrones = droneService.GetDronesByPersonId(String.Empty, filter); Assert.Equal(count, filteredDrones.Count); }
public ICollection <Drone> GetDronesByPersonId(string personId, DroneListFilter filterViewModel) { var drones = _droneRepository.GetAll(x => x.OwnerId == personId); return(FilterDrones(drones, filterViewModel)); }
private ICollection <Drone> FilterDrones(ICollection <Drone> unfilteredDrones, DroneListFilter filter) { IEnumerable <Drone> filteredList = unfilteredDrones; if (filter != null) { if (!string.IsNullOrEmpty(filter.DroneCode)) { filteredList = filteredList.Where(x => x.Code.ToLower().Contains(filter.DroneCode.ToLower())); } if (filter.DroneType.HasValue) { filteredList = filteredList.Where(x => x.Type == (DroneType)filter.DroneType.Value); } } return(filteredList.ToList()); }