From e427b5008e394c6a93c769c958ea340886343f77 Mon Sep 17 00:00:00 2001 From: suk07 Date: Wed, 4 Dec 2024 20:28:42 +0900 Subject: [PATCH] add metadata query test --- .../Repositories/MetadataRepository.cs | 9 ++++- ...Metadata_Returns_CorrectValue.verified.txt | 9 +++++ Mimir.Tests/QueryTests/MetadataTest.cs | 38 +++++++++++++++++++ Mimir/GraphQL/Queries/Query.cs | 2 +- Mimir/Program.cs | 2 +- 5 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 Mimir.Tests/QueryTests/MetadataTest.GraphQL_Query_Metadata_Returns_CorrectValue.verified.txt create mode 100644 Mimir.Tests/QueryTests/MetadataTest.cs diff --git a/Mimir.MongoDB/Repositories/MetadataRepository.cs b/Mimir.MongoDB/Repositories/MetadataRepository.cs index 6c327737..afecb76a 100644 --- a/Mimir.MongoDB/Repositories/MetadataRepository.cs +++ b/Mimir.MongoDB/Repositories/MetadataRepository.cs @@ -4,8 +4,13 @@ using MongoDB.Driver; namespace Mimir.MongoDB.Repositories; - -public class MetadataRepository(IMongoDbService dbService) +public interface IMetadataRepository{ + Task GetByCollectionAsync(string collectionName); + Task GetByCollectionAndTypeAsync( + string pollerType, + string collectionName); +} +public class MetadataRepository(IMongoDbService dbService):IMetadataRepository { public async Task GetByCollectionAsync(string collectionName) { diff --git a/Mimir.Tests/QueryTests/MetadataTest.GraphQL_Query_Metadata_Returns_CorrectValue.verified.txt b/Mimir.Tests/QueryTests/MetadataTest.GraphQL_Query_Metadata_Returns_CorrectValue.verified.txt new file mode 100644 index 00000000..3a0bbd14 --- /dev/null +++ b/Mimir.Tests/QueryTests/MetadataTest.GraphQL_Query_Metadata_Returns_CorrectValue.verified.txt @@ -0,0 +1,9 @@ +{ + "data": { + "metadata": { + "collectionName": "collection", + "latestBlockIndex": 0, + "pollerType": "poller-type" + } + } +} \ No newline at end of file diff --git a/Mimir.Tests/QueryTests/MetadataTest.cs b/Mimir.Tests/QueryTests/MetadataTest.cs new file mode 100644 index 00000000..1aebe468 --- /dev/null +++ b/Mimir.Tests/QueryTests/MetadataTest.cs @@ -0,0 +1,38 @@ +using Libplanet.Crypto; +using Mimir.MongoDB.Bson; +using Mimir.MongoDB.Repositories; +using Mimir.Tests; +using Moq; + +public class MetadataTest +{ + [Fact] + public async Task GraphQL_Query_Metadata_Returns_CorrectValue() + { + var mockRepo = new Mock(); + mockRepo + .Setup(repo => repo.GetByCollectionAsync(It.IsAny())) + .ReturnsAsync(new MetadataDocument{ + PollerType="poller-type", + CollectionName="collection" + }); + + var serviceProvider = TestServices.Builder + .With(mockRepo.Object) + .Build(); + + var query = $$""" + query { + metadata(collectionName: "collection") { + collectionName + latestBlockIndex + pollerType + } + } + """; + + var result = await TestServices.ExecuteRequestAsync(serviceProvider, b => b.SetDocument(query)); + + await Verify(result); + } +} \ No newline at end of file diff --git a/Mimir/GraphQL/Queries/Query.cs b/Mimir/GraphQL/Queries/Query.cs index 10ec70c4..b33b6c00 100644 --- a/Mimir/GraphQL/Queries/Query.cs +++ b/Mimir/GraphQL/Queries/Query.cs @@ -114,7 +114,7 @@ public async Task GetInventoryAsync(Address address, [Service] Invent /// /// The name of the collection. /// The metadata - public async Task GetMetadataAsync(string collectionName, [Service] MetadataRepository repo) => + public async Task GetMetadataAsync(string collectionName, [Service] IMetadataRepository repo) => await repo.GetByCollectionAsync(collectionName); /// diff --git a/Mimir/Program.cs b/Mimir/Program.cs index 04358db9..effcdbad 100644 --- a/Mimir/Program.cs +++ b/Mimir/Program.cs @@ -47,7 +47,7 @@ builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); -builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton();