Пример #1
0
        public async Task Should_use_existing_query()
        {
            var clrQuery = new ClrQuery();

            var parsed = await sut.ParseQueryAsync(requestContext, Q.Empty.WithQuery(clrQuery));

            Assert.Same(parsed, clrQuery);
        }
Пример #2
0
        public AssetQueryServiceTests()
        {
            requestContext = new Context(Mocks.FrontendUser(), Mocks.App(appId));

            A.CallTo(() => queryParser.ParseQueryAsync(requestContext, A <Q> ._))
            .ReturnsLazily(c => Task.FromResult(c.GetArgument <Q>(1) !));

            sut = new AssetQueryService(assetEnricher, assetRepository, assetFolderRepository, queryParser);
        }
        public AssetQueryServiceTests()
        {
            requestContext = new Context(Mocks.FrontendUser(), Mocks.App(appId));

            A.CallTo(() => queryParser.ParseQueryAsync(requestContext, A <Q> ._))
            .Returns(new ClrQuery());

            sut = new AssetQueryService(assetEnricher, assetRepository, assetFolderRepository, queryParser);
        }
Пример #4
0
        public async Task <IResultList <IEnrichedAssetEntity> > QueryAsync(Context context, DomainId?parentId, Q q)
        {
            Guard.NotNull(context, nameof(context));
            Guard.NotNull(q, nameof(q));

            q = await queryParser.ParseQueryAsync(context, q);

            var assets = await assetRepository.QueryAsync(context.App.Id, parentId, q);

            if (q.Ids != null && q.Ids.Count > 0)
            {
                assets = assets.SortSet(x => x.Id, q.Ids);
            }

            var enriched = await assetEnricher.EnrichAsync(assets, context);

            return(ResultList.Create(assets.Total, enriched));
        }
Пример #5
0
        public async Task Should_throw_if_odata_query_is_invalid()
        {
            var query = Q.Empty.WithODataQuery("$filter=invalid");

            await Assert.ThrowsAsync <ValidationException>(() => sut.ParseQueryAsync(requestContext, query).AsTask());
        }
Пример #6
0
        private async Task <IResultList <IAssetEntity> > QueryByQueryAsync(Context context, Guid?parentId, Q query)
        {
            var parsedQuery = await queryParser.ParseQueryAsync(context, query);

            return(await assetRepository.QueryAsync(context.App.Id, parentId, parsedQuery));
        }