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);
        }
Пример #2
0
        public ICollection <Drone> GetDronesByPersonId(string personId, DroneListFilter filterViewModel)
        {
            var drones = _droneRepository.GetAll(x => x.OwnerId == personId);

            return(FilterDrones(drones, filterViewModel));
        }
Пример #3
0
        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());
        }