Exemplo n.º 1
0
        public async Task HandleGetByFilter_TestAsync()
        {
            var filter         = new WoodyPlantFilterModel();
            var sort           = new WoodyPlantSortModel();
            var request        = new GetWoodyPlantsByFilterRequest(filter, sort);
            var id             = ObjectId.GenerateNewId();
            var expectedPlants = new List <WoodyPlantDocument>()
            {
                new WoodyPlantDocument {
                    Id = id
                }
            };

            fWoodyPlantsRepository
            .GetByFilterAsync(Arg.Is(filter), Arg.Is(sort), Arg.Is(default(CancellationToken)))
            .Returns(expectedPlants);

            fWoodyPlantsRepository
            .CountByFilterAsync(Arg.Is(filter), Arg.Is(default(CancellationToken)))
            .Returns(56);

            var result = await new WoodyPlantsRequestHandler(fWoodyPlantsRepository, fVersionRepository).Handle(request, default);

            Assert.NotNull(result);
            Assert.Equal(expectedPlants.Count, result.WoodyPlants.Count);
            Assert.Equal(expectedPlants[0].Id, result.WoodyPlants[0].Id);
            Assert.Equal(56, result.TotalCount);
            Assert.Null(result.DataVersion);
        }
        public async Task <WoodyPlantListModel> Handle(GetWoodyPlantsByFilterRequest request, CancellationToken cancellationToken)
        {
            var versionDoc = await fVersionRepository.GetSingleAsync(cancellationToken);

            if (await IsFillCoordsFilterAsync(request.Filter, request.Sort, cancellationToken))
            {
                var all = await fWoodyPlantsRepository.GetWithCoordsAsync(cancellationToken);

                return(new WoodyPlantListModel
                {
                    TotalCount = all.Count,
                    WoodyPlants = all.ToPreview(),
                    DataVersion = versionDoc?.Version
                });
            }

            var plants = await fWoodyPlantsRepository.GetByFilterAsync(request.Filter, request.Sort, cancellationToken);

            return(new WoodyPlantListModel
            {
                TotalCount = await fWoodyPlantsRepository.CountByFilterAsync(request.Filter, cancellationToken),
                WoodyPlants = plants.ToPreview(),
                DataVersion = versionDoc?.Version
            });
        }
Exemplo n.º 3
0
        public async Task HandleGetByFilter_OptimalizedGet_TestAsync()
        {
            var filter = new WoodyPlantFilterModel
            {
                Distance = null,
                Skip     = 0,
                Text     = null,
                Point    = new Point
                {
                    Latitude  = 50,
                    Longitude = 50
                },
                Take = 70
            };

            var sort = new WoodyPlantSortModel
            {
                SortBy    = null,
                Ascending = true
            };

            var request        = new GetWoodyPlantsByFilterRequest(filter, sort);
            var id             = ObjectId.GenerateNewId();
            var expectedPlants = new List <WoodyPlantDocument>()
            {
                new WoodyPlantDocument {
                    Id = id
                }
            };

            fWoodyPlantsRepository
            .GetWithCoordsAsync(Arg.Is(default(CancellationToken)))
            .Returns(expectedPlants);

            fWoodyPlantsRepository
            .CountByFilterAsync(Arg.Is(filter), Arg.Is(default(CancellationToken)))
            .Returns(1);

            var result = await new WoodyPlantsRequestHandler(fWoodyPlantsRepository, fVersionRepository).Handle(request, default);

            Assert.NotNull(result);
            Assert.True(sort.Ascending);
            Assert.Equal(expectedPlants.Count, result.WoodyPlants.Count);
            Assert.Equal(expectedPlants[0].Id, result.WoodyPlants[0].Id);
            Assert.Equal(1, result.TotalCount);
        }