From fe3629c1c5a54b23215e0de37fdb3cd651490a47 Mon Sep 17 00:00:00 2001 From: Derek Begnoche Date: Fri, 26 Jan 2018 00:20:51 -0600 Subject: [PATCH] Fixing GraphQl Tests --- .../Assets/MongoAssetRepository.cs | 13 +++++++++++++ .../Assets/Repositories/IAssetRepository.cs | 2 ++ .../Contents/QueryContext.cs | 2 +- .../Contents/GraphQL/GraphQLQueriesTests.cs | 6 +++--- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs index 87e593bfb..bf9c7312a 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs @@ -6,6 +6,7 @@ // ========================================================================== using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.OData; @@ -64,6 +65,18 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets return ResultList.Create(assetEntities.OfType().ToList(), assetCount); } + public async Task> QueryAsync(Guid appId, HashSet ids) + { + var find = Collection + .Find(Filter.In(x => x.Id, ids)) + .SortByDescending(x => x.LastModified); + + var assetEntities = await find.ToListAsync(); + var assetCount = await find.CountAsync(); + + return ResultList.Create(assetEntities.OfType().ToList(), assetCount); + } + public async Task FindAssetAsync(Guid id) { var assetEntity = diff --git a/src/Squidex.Domain.Apps.Entities/Assets/Repositories/IAssetRepository.cs b/src/Squidex.Domain.Apps.Entities/Assets/Repositories/IAssetRepository.cs index d940f838f..f748b4936 100644 --- a/src/Squidex.Domain.Apps.Entities/Assets/Repositories/IAssetRepository.cs +++ b/src/Squidex.Domain.Apps.Entities/Assets/Repositories/IAssetRepository.cs @@ -16,6 +16,8 @@ namespace Squidex.Domain.Apps.Entities.Assets.Repositories { Task> QueryAsync(Guid appId, string query = null); + Task> QueryAsync(Guid appId, HashSet ids); + Task FindAssetAsync(Guid id); } } diff --git a/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs b/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs index bac8fee4a..bf5dbd7ab 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs @@ -112,7 +112,7 @@ namespace Squidex.Domain.Apps.Entities.Contents if (notLoadedAssets.Count > 0) { - var assets = await assetRepository.QueryAsync(app.Id, null); + var assets = await assetRepository.QueryAsync(app.Id, notLoadedAssets); foreach (var asset in assets) { diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs index 5cba90e5b..9cb71fc72 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs @@ -65,7 +65,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL var assets = new List { asset }; - A.CallTo(() => assetRepository.QueryAsync(app.Id, null)) + A.CallTo(() => assetRepository.QueryAsync(app.Id, "?$take=30&$skip=5&$search=my-query")) .Returns(ResultList.Create(assets, 0)); var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query }); @@ -134,7 +134,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL var assets = new List { asset }; - A.CallTo(() => assetRepository.QueryAsync(app.Id, "my-query")) + A.CallTo(() => assetRepository.QueryAsync(app.Id, "?$take=30&$skip=5&$search=my-query")) .Returns(ResultList.Create(assets, 10)); var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query }); @@ -667,7 +667,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL A.CallTo(() => contentQuery.FindContentAsync(app, schema.Id.ToString(), user, contentId, EtagVersion.Any)) .Returns((schema, content)); - A.CallTo(() => assetRepository.QueryAsync(app.Id, A.That.Matches(x => x.Contains(assetRef.Id.ToString())))) + A.CallTo(() => assetRepository.QueryAsync(app.Id, A>.That.Matches(x => x.Contains(assetRefId)))) .Returns(ResultList.Create(refAssets, 0)); var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query });