From 0df27368b2e9bef5d64f859616b96683ddec5282 Mon Sep 17 00:00:00 2001 From: Magnus Ahlberg Date: Thu, 20 Mar 2025 13:11:23 +0100 Subject: [PATCH] Switch to central package management with Directory.Packages.props Replaced Directory.Build.props with Directory.Packages.props to enable centralized package version management. Updated and added package versions as part of the migration. --- Directory.Build.props | 9 - Directory.Packages.props | 43 ++++ Linq2GraphQL.sln | 2 +- .../Linq2GraphQL.Docs.csproj | 16 +- .../Linq2GraphQL.Client.Subscriptions.csproj | 4 +- .../Linq2GraphQL.Client.csproj | 6 +- .../Linq2GraphQL.Generator.csproj | 8 +- .../Linq2GraphQL.Console.csproj | 18 +- .../Linq2GraphQL.TestServer.Shared.csproj | 6 +- .../Linq2GraphQL.TestServer.csproj | 8 +- .../Linq2GraphQL.TestServerNullable.csproj | 10 +- .../Linq2GraphQL.Tests.csproj | 22 +- test/Linq2GraphQL.Tests/MutationTests.cs | 10 +- test/Linq2GraphQL.Tests/QueryArgumentTests.cs | 190 +++++++++--------- test/Linq2GraphQL.Tests/QueryIncludeTests.cs | 25 +-- .../Linq2GraphQL.Tests/QueryInterfaceTests.cs | 81 ++++---- test/Linq2GraphQL.Tests/QueryNullableTests.cs | 107 +++++----- test/Linq2GraphQL.Tests/QueryPagingTests.cs | 40 ++-- .../QueryProjectionTests.cs | 140 ++++++------- test/Linq2GraphQL.Tests/QueryTests.cs | 24 +-- .../Linq2GraphQL.Tests/SampleClientFixture.cs | 16 +- .../SampleClientNullableFixture.cs | 17 +- test/Linq2GraphQL.Tests/ScalarTests.cs | 72 +++---- test/Linq2GraphQL.Tests/SubscriptionTests.cs | 5 +- 24 files changed, 414 insertions(+), 465 deletions(-) delete mode 100644 Directory.Build.props create mode 100644 Directory.Packages.props diff --git a/Directory.Build.props b/Directory.Build.props deleted file mode 100644 index d19acbdf..00000000 --- a/Directory.Build.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 3.6.143 - all - - - \ No newline at end of file diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..646757e3 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,43 @@ + + + true + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + \ No newline at end of file diff --git a/Linq2GraphQL.sln b/Linq2GraphQL.sln index 1a73a37c..e4579a6a 100644 --- a/Linq2GraphQL.sln +++ b/Linq2GraphQL.sln @@ -8,10 +8,10 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".items", ".items", "{7A8567FE-C13A-434E-AFA6-5A8F55F2C6B5}" ProjectSection(SolutionItems) = preProject .gitignore = .gitignore - Directory.Build.props = Directory.Build.props nuget.config = nuget.config README.md = README.md version.json = version.json + Directory.Packages.props = Directory.Packages.props EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Linq2GraphQL.TestServer", "test\Linq2GraphQL.TestServer\Linq2GraphQL.TestServer.csproj", "{AD8291B6-5979-4C43-B785-EAD4FF93C564}" diff --git a/docs/Linq2GraphQL.Docs/Linq2GraphQL.Docs.csproj b/docs/Linq2GraphQL.Docs/Linq2GraphQL.Docs.csproj index 2a8468eb..0fb7dd7f 100644 --- a/docs/Linq2GraphQL.Docs/Linq2GraphQL.Docs.csproj +++ b/docs/Linq2GraphQL.Docs/Linq2GraphQL.Docs.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -11,12 +11,12 @@ - - - - - - + + + + + + @@ -27,7 +27,7 @@ - + wwwroot\_content\razor_samples\%(DistFiles.RecursiveDir)%(DistFiles.Filename)%(DistFiles.Extension) PreserveNewest true diff --git a/src/Linq2GraphQL.Client.Subscriptions/Linq2GraphQL.Client.Subscriptions.csproj b/src/Linq2GraphQL.Client.Subscriptions/Linq2GraphQL.Client.Subscriptions.csproj index d2d3ad5d..4b5244eb 100644 --- a/src/Linq2GraphQL.Client.Subscriptions/Linq2GraphQL.Client.Subscriptions.csproj +++ b/src/Linq2GraphQL.Client.Subscriptions/Linq2GraphQL.Client.Subscriptions.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -20,7 +20,7 @@ - + diff --git a/src/Linq2GraphQL.Client/Linq2GraphQL.Client.csproj b/src/Linq2GraphQL.Client/Linq2GraphQL.Client.csproj index 7cb7da22..e5f1a536 100644 --- a/src/Linq2GraphQL.Client/Linq2GraphQL.Client.csproj +++ b/src/Linq2GraphQL.Client/Linq2GraphQL.Client.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -15,8 +15,8 @@ - - + + diff --git a/src/Linq2GraphQL.Generator/Linq2GraphQL.Generator.csproj b/src/Linq2GraphQL.Generator/Linq2GraphQL.Generator.csproj index 337e7eca..5819e4e9 100644 --- a/src/Linq2GraphQL.Generator/Linq2GraphQL.Generator.csproj +++ b/src/Linq2GraphQL.Generator/Linq2GraphQL.Generator.csproj @@ -1,4 +1,4 @@ - + Exe @@ -20,9 +20,9 @@ - - - + + + diff --git a/test/Linq2GraphQL.Console/Linq2GraphQL.Console.csproj b/test/Linq2GraphQL.Console/Linq2GraphQL.Console.csproj index a1534392..3a38b49e 100644 --- a/test/Linq2GraphQL.Console/Linq2GraphQL.Console.csproj +++ b/test/Linq2GraphQL.Console/Linq2GraphQL.Console.csproj @@ -1,4 +1,4 @@ - + Exe @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + diff --git a/test/Linq2GraphQL.TestServer.Shared/Linq2GraphQL.TestServer.Shared.csproj b/test/Linq2GraphQL.TestServer.Shared/Linq2GraphQL.TestServer.Shared.csproj index c376ed27..3f750461 100644 --- a/test/Linq2GraphQL.TestServer.Shared/Linq2GraphQL.TestServer.Shared.csproj +++ b/test/Linq2GraphQL.TestServer.Shared/Linq2GraphQL.TestServer.Shared.csproj @@ -7,9 +7,9 @@ - - - + + + diff --git a/test/Linq2GraphQL.TestServer/Linq2GraphQL.TestServer.csproj b/test/Linq2GraphQL.TestServer/Linq2GraphQL.TestServer.csproj index 66bbba09..cfa6f1bd 100644 --- a/test/Linq2GraphQL.TestServer/Linq2GraphQL.TestServer.csproj +++ b/test/Linq2GraphQL.TestServer/Linq2GraphQL.TestServer.csproj @@ -1,4 +1,4 @@ - + Exe @@ -8,9 +8,9 @@ - - - + + + diff --git a/test/Linq2GraphQL.TestServerNullable/Linq2GraphQL.TestServerNullable.csproj b/test/Linq2GraphQL.TestServerNullable/Linq2GraphQL.TestServerNullable.csproj index 8559f2ad..d26bc39e 100644 --- a/test/Linq2GraphQL.TestServerNullable/Linq2GraphQL.TestServerNullable.csproj +++ b/test/Linq2GraphQL.TestServerNullable/Linq2GraphQL.TestServerNullable.csproj @@ -1,4 +1,4 @@ - + Exe @@ -8,10 +8,10 @@ - - - - + + + + diff --git a/test/Linq2GraphQL.Tests/Linq2GraphQL.Tests.csproj b/test/Linq2GraphQL.Tests/Linq2GraphQL.Tests.csproj index 17182248..788d1b91 100644 --- a/test/Linq2GraphQL.Tests/Linq2GraphQL.Tests.csproj +++ b/test/Linq2GraphQL.Tests/Linq2GraphQL.Tests.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -10,25 +10,25 @@ - - - - - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - + + + + diff --git a/test/Linq2GraphQL.Tests/MutationTests.cs b/test/Linq2GraphQL.Tests/MutationTests.cs index 6b3951f4..6c9b81dd 100644 --- a/test/Linq2GraphQL.Tests/MutationTests.cs +++ b/test/Linq2GraphQL.Tests/MutationTests.cs @@ -31,17 +31,13 @@ public async Task Mutation_Multiple() var id = Guid.NewGuid(); var customerId = await sampleClient .Mutation - .AddCustomer(new CustomerInput + .AddCustomer(new() { - CustomerId = id, - CustomerName = "New Customer", - Orders = new List(), - Status = CustomerStatus.Active, + CustomerId = id, CustomerName = "New Customer", Orders = new(), Status = CustomerStatus.Active }) - .Select(e=> e.CustomerId) + .Select(e => e.CustomerId) .ExecuteAsync(); Assert.Equal(id, customerId); } - } \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryArgumentTests.cs b/test/Linq2GraphQL.Tests/QueryArgumentTests.cs index 8764f050..51793458 100644 --- a/test/Linq2GraphQL.Tests/QueryArgumentTests.cs +++ b/test/Linq2GraphQL.Tests/QueryArgumentTests.cs @@ -1,112 +1,104 @@ using Linq2GraphQL.TestClient; -namespace Linq2GraphQL.Tests +namespace Linq2GraphQL.Tests; + +public class QueryArgumentTests : IClassFixture { + private readonly SampleClient sampleClient; - public class QueryArgumentTests : IClassFixture + public QueryArgumentTests(SampleClientFixture safeModeClient) { - private readonly SampleClient sampleClient; - - public QueryArgumentTests(SampleClientFixture safeModeClient) - { - sampleClient = safeModeClient.sampleClient; - } - - [Fact] - public async Task TopAndInQueryArguments_SameName() - { - var query = sampleClient - .Query - .Orders(first: 1) - .Include(e => e.Nodes.Select(e => e.OrderHello("JOcke", 2))) - .Include(e => e.Nodes.Select(e => e.OrderAddress(AddressType.Invoice))) - .Select(e => e.Nodes); - - var request = await query.GetRequestAsync(); - var result = await query.ExecuteAsync(); - - Assert.Single(result); - } - - [Fact] - public async Task TopLevelArguments() - { - var query = sampleClient - .Query - .Orders(first: 1) - .Select(e => e.Nodes); - - var request = await query.GetRequestAsync(); - var result = await query.ExecuteAsync(); - - var order = result.First(); - - var address = order.OrderAddress; - - Assert.Single(result); - } - - [Fact] - public async Task InQueryArguments() - { - var query = sampleClient - .Query - .Orders(first: 1) - .Include(e => e.Nodes.Select(e => e.OrderAddress(AddressType.Invoice))) - .Select(e => e.Nodes); - - var request = query.GetRequestAsync(); - - var result = await query.ExecuteAsync(); - - var order = result.First(); - - Assert.NotNull(order.OrderAddress); - Assert.Equal("Invoice", result.First().OrderAddress?.Name); - } - - [Fact] - public async Task InQueryAnonymousType() - { - var query = sampleClient - .Query - .Orders(first: 2) - .Include(e => e.Nodes) - .Select(e => e.Nodes.Select(e => e.OrderHello("Kalle", 123))); - - var gQ = await query.GetRequestAsync(); - - var node = query.QueryNode; - var result = await query.ExecuteAsync(); - - Assert.NotNull(result.First()); - - } - - [Fact] - public async Task InQueryArguments_Multiple() - { - var query = sampleClient - .Query - .Orders() - .Select(e => e.Nodes.Select(f => new - { - Jocke = f.OrderHello("Jocke", 22), - Kalle = f.OrderHello("Kalle", 11) - }) - ); + sampleClient = safeModeClient.sampleClient; + } - var request = query.GetRequestAsync(); - var result = await query.ExecuteAsync(); + [Fact] + public async Task TopAndInQueryArguments_SameName() + { + var query = sampleClient + .Query + .Orders(1) + .Include(e => e.Nodes.Select(e => e.OrderHello("JOcke", 2))) + .Include(e => e.Nodes.Select(e => e.OrderAddress(AddressType.Invoice))) + .Select(e => e.Nodes); + + var request = await query.GetRequestAsync(); + var result = await query.ExecuteAsync(); - var addresses = result.First(); + Assert.Single(result); + } - Assert.Equal("Hello, Jocke [22]", addresses.Jocke); - Assert.Equal("Hello, Kalle [11]", addresses.Kalle); + [Fact] + public async Task TopLevelArguments() + { + var query = sampleClient + .Query + .Orders(1) + .Select(e => e.Nodes); - } + var request = await query.GetRequestAsync(); + var result = await query.ExecuteAsync(); + var order = result.First(); + var address = order.OrderAddress; + + Assert.Single(result); } -} + [Fact] + public async Task InQueryArguments() + { + var query = sampleClient + .Query + .Orders(1) + .Include(e => e.Nodes.Select(e => e.OrderAddress(AddressType.Invoice))) + .Select(e => e.Nodes); + + var request = query.GetRequestAsync(); + + var result = await query.ExecuteAsync(); + + var order = result.First(); + + Assert.NotNull(order.OrderAddress); + Assert.Equal("Invoice", result.First().OrderAddress?.Name); + } + + [Fact] + public async Task InQueryAnonymousType() + { + var query = sampleClient + .Query + .Orders(2) + .Include(e => e.Nodes) + .Select(e => e.Nodes.Select(e => e.OrderHello("Kalle", 123))); + + var gQ = await query.GetRequestAsync(); + + var node = query.QueryNode; + var result = await query.ExecuteAsync(); + + Assert.NotNull(result.First()); + } + + [Fact] + public async Task InQueryArguments_Multiple() + { + var query = sampleClient + .Query + .Orders() + .Select(e => e.Nodes.Select(f => new + { + Jocke = f.OrderHello("Jocke", 22), Kalle = f.OrderHello("Kalle", 11) + }) + ); + + var request = query.GetRequestAsync(); + var result = await query.ExecuteAsync(); + + var addresses = result.First(); + + Assert.Equal("Hello, Jocke [22]", addresses.Jocke); + Assert.Equal("Hello, Kalle [11]", addresses.Kalle); + } +} \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryIncludeTests.cs b/test/Linq2GraphQL.Tests/QueryIncludeTests.cs index 4c4eef4a..33a27e74 100644 --- a/test/Linq2GraphQL.Tests/QueryIncludeTests.cs +++ b/test/Linq2GraphQL.Tests/QueryIncludeTests.cs @@ -1,5 +1,4 @@ -using HotChocolate.Execution; -using Linq2GraphQL.TestClient; +using Linq2GraphQL.TestClient; namespace Linq2GraphQL.Tests; @@ -32,7 +31,7 @@ public async Task IncludePrimitives_MultipleLevels() { var query = sampleClient .Query - .Orders(first: 1) + .Orders(1) .Include(e => e.Nodes.Select(e => e.Customer)) .Include(e => e.Nodes.Select(e => e.Customer.Orders)) .Select(e => e.Nodes); @@ -62,11 +61,7 @@ public async Task IncludePrimitives_AnomousResult() Hello = n.OrderHello("Peter", 1234), DeliveryAddress = n.OrderAddress(AddressType.Delivery), InvoiceAddress = n.OrderAddress(AddressType.Invoice), - Cust = new - { - n.Customer.CustomerName, - n.Customer.Orders - } + Cust = new { n.Customer.CustomerName, n.Customer.Orders } })); var q = await query.GetRequestAsync(); @@ -92,19 +87,9 @@ public async Task IncludePrimitives_IncludeMultilevelComplex_PopulatePrimitivesO .Query .Orders(where: new() { - Customer = new() - { - CustomerId = new() - { - Eq = Guid.Parse("3b1761fb-6551-404e-80b0-a6c12f298a06") - } - } + Customer = new() { CustomerId = new() { Eq = Guid.Parse("3b1761fb-6551-404e-80b0-a6c12f298a06") } } }) - .Select(e => e.Nodes.Select(n => new - { - n.Customer, - n.Customer.Orders - })) + .Select(e => e.Nodes.Select(n => new { n.Customer, n.Customer.Orders })) .ExecuteAsync(); diff --git a/test/Linq2GraphQL.Tests/QueryInterfaceTests.cs b/test/Linq2GraphQL.Tests/QueryInterfaceTests.cs index 8651c6fd..674b4862 100644 --- a/test/Linq2GraphQL.Tests/QueryInterfaceTests.cs +++ b/test/Linq2GraphQL.Tests/QueryInterfaceTests.cs @@ -1,59 +1,50 @@ using Linq2GraphQL.TestClient; -namespace Linq2GraphQL.Tests +namespace Linq2GraphQL.Tests; + +public class QueryInterfaceTests : IClassFixture { + private readonly SampleClient sampleClient; - public class QueryInterfaceTests : IClassFixture + public QueryInterfaceTests(SampleClientFixture safeModeClient) { - private readonly SampleClient sampleClient; - - public QueryInterfaceTests(SampleClientFixture safeModeClient) - { - sampleClient = safeModeClient.sampleClient; - } - - [Fact] - public async Task Interface_NoSubclass() - { - var result = await sampleClient - .Query - .Animals() - .Select(e => e.Nodes) - .ExecuteAsync(); - - var pig = result.First(); - var spider = result.Last(); - - Assert.IsType(spider); - Assert.IsType(pig); - - } - - [Fact] - public async Task Interface_QuerySubClass() - { - var query = sampleClient - .Query - .Animals() - .Include(e => e.Nodes.Select(e => e.Pig())) - .Include(e => e.Nodes.Select(e => e.Spider())) - .Select(e => e.Nodes); + sampleClient = safeModeClient.sampleClient; + } + [Fact] + public async Task Interface_NoSubclass() + { + var result = await sampleClient + .Query + .Animals() + .Select(e => e.Nodes) + .ExecuteAsync(); - var request = await query.GetRequestAsync(); - var result = await query.ExecuteAsync(); + var pig = result.First(); + var spider = result.Last(); - var pig = result.First(); - var spider = result.Last(); + Assert.IsType(spider); + Assert.IsType(pig); + } - Assert.IsType(spider); - Assert.IsType(pig); + [Fact] + public async Task Interface_QuerySubClass() + { + var query = sampleClient + .Query + .Animals() + .Include(e => e.Nodes.Select(e => e.Pig())) + .Include(e => e.Nodes.Select(e => e.Spider())) + .Select(e => e.Nodes); - } + var request = await query.GetRequestAsync(); + var result = await query.ExecuteAsync(); - + var pig = result.First(); + var spider = result.Last(); + Assert.IsType(spider); + Assert.IsType(pig); } - -} +} \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryNullableTests.cs b/test/Linq2GraphQL.Tests/QueryNullableTests.cs index 53766cfe..d023d028 100644 --- a/test/Linq2GraphQL.Tests/QueryNullableTests.cs +++ b/test/Linq2GraphQL.Tests/QueryNullableTests.cs @@ -1,73 +1,68 @@ -using Linq2GraphQL.TestClient; +using System.Text; using Linq2GraphQL.TestClientNullable; -using System.Collections; -using System.Text; +namespace Linq2GraphQL.Tests; -namespace Linq2GraphQL.Tests +public class QueryNullableTests : IClassFixture { - public class QueryNullableTests : IClassFixture - { - private readonly SampleNullableClient nullableClient; - - public QueryNullableTests(SampleNullableClientFixture nullableFixture) - { - nullableClient = nullableFixture.sampleClient; - } + private readonly SampleNullableClient nullableClient; - [Fact] - public async Task GetCustomers() - { - var result = await nullableClient - .Query - .CustomerList() - .Select() - .ExecuteAsync(); + public QueryNullableTests(SampleNullableClientFixture nullableFixture) + { + nullableClient = nullableFixture.sampleClient; + } - Assert.Equal(2, result.Count); - } + [Fact] + public async Task GetCustomers() + { + var result = await nullableClient + .Query + .CustomerList() + .Select() + .ExecuteAsync(); - [Fact] - public async Task GetItemData() - { - var result = await nullableClient - .Query - .Item() - .Include(e=> e.Data) - .Select() - .ExecuteAsync(); + Assert.Equal(2, result.Count); + } - var data = System.Text.Encoding.UTF8.GetString(result.Data!.ToArray()); + [Fact] + public async Task GetItemData() + { + var result = await nullableClient + .Query + .Item() + .Include(e => e.Data) + .Select() + .ExecuteAsync(); - Assert.Equal(result.ItemName, data); - } + var data = Encoding.UTF8.GetString(result.Data!.ToArray()); + Assert.Equal(result.ItemName, data); + } - [Fact] - public async Task GetCustomerNull() - { - var result = await nullableClient - .Query - .CustomerNullable() - .Select() - .ExecuteAsync(); - Assert.Null(result); - } + [Fact] + public async Task GetCustomerNull() + { + var result = await nullableClient + .Query + .CustomerNullable() + .Select() + .ExecuteAsync(); + Assert.Null(result); + } - [Fact] - public async Task GetCustomerListInList() - { - var result = await nullableClient - .Query - .CustomerListInList() - .Select() - .ExecuteAsync(); - TestClientNullable.Customer? customer = result.FirstOrDefault()?.FirstOrDefault(); - Assert.NotNull(customer); - } + [Fact] + public async Task GetCustomerListInList() + { + var result = await nullableClient + .Query + .CustomerListInList() + .Select() + .ExecuteAsync(); + var customer = result.FirstOrDefault()?.FirstOrDefault(); + Assert.NotNull(customer); } -} +} \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryPagingTests.cs b/test/Linq2GraphQL.Tests/QueryPagingTests.cs index f1049c10..aed792ef 100644 --- a/test/Linq2GraphQL.Tests/QueryPagingTests.cs +++ b/test/Linq2GraphQL.Tests/QueryPagingTests.cs @@ -1,7 +1,3 @@ -using FluentAssertions; -using GreenDonut; -using HotChocolate.Types.Pagination; -using Linq2GraphQL.Client; using Linq2GraphQL.TestClient; namespace Linq2GraphQL.Tests; @@ -15,14 +11,13 @@ public QueryPagingTests(SampleClientFixture sampleClient) this.sampleClient = sampleClient.sampleClient; } - [Fact] public async Task Orders_ManualPaging() { var query = sampleClient .Query - .OrdersNoBackwardPagination(first: 2) + .OrdersNoBackwardPagination(2) .Include(e => e.Nodes) .Include(e => e.PageInfo) .Include(e => e.TotalCount) @@ -30,11 +25,11 @@ public async Task Orders_ManualPaging() var request = await query.GetRequestAsync(); - await query.ExecuteBaseAsync(); + await query.ExecuteBaseAsync(); var result1 = query.ConvertResult(query.BaseResult); var result2 = result1; - + if (query.BaseResult.PageInfo.HasNextPage) { query.QueryNode.SetArgumentValue("after", query.BaseResult.PageInfo.EndCursor); @@ -42,21 +37,19 @@ public async Task Orders_ManualPaging() } Assert.NotEqual(result1.First().OrderId, result2.First().OrderId); - } [Fact] public async Task Orders_NotIncludeTotalCount() { var query = sampleClient - .Query - .Orders() - .Select(e => e.Nodes); + .Query + .Orders() + .Select(e => e.Nodes); var result = await query.ExecuteAsync(); - - Assert.Equal(0, query.BaseResult.TotalCount); + Assert.Equal(0, query.BaseResult.TotalCount); } @@ -64,25 +57,20 @@ public async Task Orders_NotIncludeTotalCount() public async Task Orders_Paging() { var pager = sampleClient - .Query - .Orders() - .Include(e => e.TotalCount) - //.Include(e => e.Nodes.Select(e => e.Customer.Orders)) - - .Select(e => e.Nodes.Select(e => new { e.OrderId })) - .AsPager(); + .Query + .Orders() + .Include(e => e.TotalCount) + //.Include(e => e.Nodes.Select(e => e.Customer.Orders)) + .Select(e => e.Nodes.Select(e => new { e.OrderId })) + .AsPager(); var firstPage = await pager.NextPageAsync(); - var totalCount = pager.PagerResult.TotalCount; + var totalCount = pager.PagerResult.TotalCount; var secondPage = await pager.NextPageAsync(); var firstPageAgain = await pager.PreviousPageAsync(); Assert.NotEqual(firstPage.First().OrderId, secondPage.First().OrderId); Assert.Equal(firstPage.First().OrderId, firstPageAgain.First().OrderId); - } - - - } \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryProjectionTests.cs b/test/Linq2GraphQL.Tests/QueryProjectionTests.cs index ab62ef3c..4b1408d3 100644 --- a/test/Linq2GraphQL.Tests/QueryProjectionTests.cs +++ b/test/Linq2GraphQL.Tests/QueryProjectionTests.cs @@ -1,98 +1,88 @@ using Linq2GraphQL.TestClient; -namespace Linq2GraphQL.Tests +namespace Linq2GraphQL.Tests; + +public class QueryProjectionTests : IClassFixture { + private readonly SampleClient sampleClient; - public class QueryProjectionTests : IClassFixture + public QueryProjectionTests(SampleClientFixture safeModeClient) { - private readonly SampleClient sampleClient; + sampleClient = safeModeClient.sampleClient; + } - public QueryProjectionTests(SampleClientFixture safeModeClient) - { - sampleClient = safeModeClient.sampleClient; - } + [Fact] + public async Task ProjectingAnomousObject() + { + var query = sampleClient + .Query + .Orders() + .Select(e => e.Nodes.Select(o => new OrderIdAddress { OrderId = o.OrderId, Address = o.Address })); + + var request = await query.GetRequestAsync(); + var result = await query.ExecuteAsync(); + Assert.NotEqual(Guid.Empty, result.First().OrderId); + Assert.NotNull(result.First().Address); + + var baseOrder = query.BaseResult.Nodes.First(); + Assert.Null(baseOrder.Customer); + Assert.Equal(DateTimeOffset.MinValue, baseOrder.OrderDate); + } - [Fact] - public async Task ProjectingAnomousObject() - { - var query = sampleClient - .Query - .Orders() - .Select(e => e.Nodes.Select(o => new OrderIdAddress { OrderId = o.OrderId, Address = o.Address })); - - var request = await query.GetRequestAsync(); - var result = await query.ExecuteAsync(); - Assert.NotEqual(Guid.Empty, result.First().OrderId); - Assert.NotNull(result.First().Address); - - var baseOrder = query.BaseResult.Nodes.First(); - Assert.Null(baseOrder.Customer); - Assert.Equal(DateTimeOffset.MinValue, baseOrder.OrderDate); - - } - - [Fact] - public async Task ProjectingToType() - { - var query = sampleClient + [Fact] + public async Task ProjectingToType() + { + var query = sampleClient .Query .Orders() .Select(e => e.Nodes.Select(o => new OrderIdAddress { OrderId = o.OrderId, Address = o.Address })) - ; - - - var result = await query.ExecuteAsync(); - var order = result.First(); - Assert.NotEqual(Guid.Empty, order.OrderId); - Assert.NotNull(order.Address); - - var baseOrder = query.BaseResult.Nodes.First(); - Assert.Null(baseOrder.Customer); - Assert.Equal(DateTimeOffset.MinValue, baseOrder.OrderDate); - - } - - [Fact] - public async Task Project_SelectMany() - { - var query = sampleClient - .Query - .Customers() - .Select(e => e.SelectMany(e=> e.Orders)); + ; - var result = await query.ExecuteAsync(); - - Assert.True(result.All(e=> e.OrderId != default)); + var result = await query.ExecuteAsync(); + var order = result.First(); + Assert.NotEqual(Guid.Empty, order.OrderId); + Assert.NotNull(order.Address); - } + var baseOrder = query.BaseResult.Nodes.First(); + Assert.Null(baseOrder.Customer); + Assert.Equal(DateTimeOffset.MinValue, baseOrder.OrderDate); + } - - [Fact] - public async Task Project_TopLevelAllPrimitive() - { + [Fact] + public async Task Project_SelectMany() + { + var query = sampleClient + .Query + .Customers() + .Select(e => e.SelectMany(e => e.Orders)); - var query = sampleClient - .Query - .Customers() - .Include() - .Select(e => new { Customers = e, Orders = e.SelectMany(f => f.Orders) }); + var result = await query.ExecuteAsync(); - var request = await query.GetRequestAsync(); - var result = await query.ExecuteAsync(); - var t = result.Customers.All(e => e.CustomerId != default); - Assert.True(result.Customers.All(e => e.CustomerId != default)); + Assert.True(result.All(e => e.OrderId != default)); + } - } + [Fact] + public async Task Project_TopLevelAllPrimitive() + { + var query = sampleClient + .Query + .Customers() + .Include() + .Select(e => new { Customers = e, Orders = e.SelectMany(f => f.Orders) }); - } + var request = await query.GetRequestAsync(); + var result = await query.ExecuteAsync(); + var t = result.Customers.All(e => e.CustomerId != default); - public class OrderIdAddress - { - public Guid OrderId { get; set; } - public Address? Address { get; set; } + Assert.True(result.Customers.All(e => e.CustomerId != default)); } - } + +public class OrderIdAddress +{ + public Guid OrderId { get; set; } + public Address? Address { get; set; } +} \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/QueryTests.cs b/test/Linq2GraphQL.Tests/QueryTests.cs index 2cc64fb6..588c481f 100644 --- a/test/Linq2GraphQL.Tests/QueryTests.cs +++ b/test/Linq2GraphQL.Tests/QueryTests.cs @@ -1,5 +1,5 @@ -using FluentAssertions; using Linq2GraphQL.TestClient; +using Shouldly; namespace Linq2GraphQL.Tests; @@ -59,7 +59,7 @@ public async Task Customers_WithIncludeSelect() var query = sampleClient .Query .Customers() - .Include(e => e.Select(e=> new { e.CustomerId, e.Status })) + .Include(e => e.Select(e => new { e.CustomerId, e.Status })) .Select(); var result = await query.ExecuteAsync(); @@ -69,7 +69,6 @@ public async Task Customers_WithIncludeSelect() var customer1 = result[0]; Assert.NotEqual(default, customer1.CustomerId); Assert.Equal(default, customer1.CustomerName); - } @@ -81,7 +80,7 @@ public async Task Customers_WithIncludeOrders() .Customers() .Include(e => e.Select(e => e.Orders)) .Select(); - + var result = await query.ExecuteAsync(); var customer1 = result[0]; @@ -110,7 +109,6 @@ public async Task Customers_WithIncludeOrdersAndAddress() .Customers() .Include(e => e.Select(e => e.Orders.Select(f => f.Address))) .Include(e => e.Select(e => e.Orders.Select(f => f.Customer))) - .Select() .ExecuteAsync(); @@ -139,7 +137,6 @@ public async Task Customers_Include_Nested() Assert.Equal(default, order.Customer.CustomerId); } - [Fact] public async Task Customers_WithSingleSelect() { @@ -182,7 +179,6 @@ public async Task Orders_WithSelect() } - [Fact] public async Task Orders_WithSelectIncludeNodes() { @@ -221,7 +217,6 @@ public async Task Orders_ChainedSelect_2() var baseType = query.BaseResult; Assert.Equal(default, baseType.Nodes.First().OrderDate); - } @@ -238,7 +233,6 @@ public async Task Orders_ChainedSelect() var orderAddresses = result.SelectMany(e => e.Customer.Orders.Select(a => a.Address)); Assert.True(orderAddresses.All(e => e != null)); - } [Fact] @@ -246,16 +240,13 @@ public async Task Orders_WithOrderByDateDesc() { var result = await sampleClient .Query - .Orders(order: new List { new() { OrderDate = SortEnumType.Desc } }) + .Orders(order: new() { new() { OrderDate = SortEnumType.Desc } }) .Select(e => e.Nodes) .ExecuteAsync(); - result.Should().BeInDescendingOrder(e => e.OrderDate); + result.OrderByDescending(x => x.OrderDate).ShouldBe(result); } - - - [Fact] public async Task QueryReturnNull_Object() { @@ -266,7 +257,6 @@ public async Task QueryReturnNull_Object() .ExecuteAsync(); Assert.True(result == null); - } [Fact] @@ -279,7 +269,6 @@ public async Task QueryReturnNull_AnonymousObject() .ExecuteAsync(); Assert.True(result == null); - } [Fact] @@ -292,7 +281,6 @@ public async Task QueryReturnNull_Default() .ExecuteAsync(); Assert.True(result == Guid.Empty); - } [Fact] @@ -305,7 +293,5 @@ public async Task QueryReturnNull_GuidNull() .ExecuteAsync(); Assert.True(result == null); - } - } \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/SampleClientFixture.cs b/test/Linq2GraphQL.Tests/SampleClientFixture.cs index 2c0146b9..1e46413e 100644 --- a/test/Linq2GraphQL.Tests/SampleClientFixture.cs +++ b/test/Linq2GraphQL.Tests/SampleClientFixture.cs @@ -14,15 +14,17 @@ public SampleClientFixture() var baseAddress = new Uri("https://localhost:7184/graphql/"); var application = new WebApplicationFactory(); - var client = application.CreateClient(new WebApplicationFactoryClientOptions { BaseAddress = baseAddress }); + var client = application.CreateClient(new() { BaseAddress = baseAddress }); - sampleClient = new SampleClient(client, Options.Create(new GraphClientOptions - { - SubscriptionProtocol = SubscriptionProtocol.ServerSentEvents, - UseSafeMode = true - }), application.Services); + sampleClient = new(client, + Options.Create(new GraphClientOptions + { + SubscriptionProtocol = SubscriptionProtocol.ServerSentEvents, UseSafeMode = true + }), application.Services); //Please note currently only ServerSentEvents work in test project } - public void Dispose() { } + public void Dispose() + { + } } \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/SampleClientNullableFixture.cs b/test/Linq2GraphQL.Tests/SampleClientNullableFixture.cs index 40af0ed5..5633bfc4 100644 --- a/test/Linq2GraphQL.Tests/SampleClientNullableFixture.cs +++ b/test/Linq2GraphQL.Tests/SampleClientNullableFixture.cs @@ -1,5 +1,4 @@ using Linq2GraphQL.Client; -using Linq2GraphQL.TestClient; using Linq2GraphQL.TestClientNullable; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Options; @@ -15,15 +14,17 @@ public SampleNullableClientFixture() var baseAddress = new Uri("https://localhost:50741/graphql/"); var application = new WebApplicationFactory(); - var client = application.CreateClient(new WebApplicationFactoryClientOptions { BaseAddress = baseAddress }); + var client = application.CreateClient(new() { BaseAddress = baseAddress }); - sampleClient = new SampleNullableClient(client, Options.Create(new GraphClientOptions - { - SubscriptionProtocol = SubscriptionProtocol.ServerSentEvents, - UseSafeMode = false, - }), application.Services); + sampleClient = new(client, + Options.Create(new GraphClientOptions + { + SubscriptionProtocol = SubscriptionProtocol.ServerSentEvents, UseSafeMode = false + }), application.Services); //Please note currently only ServerSentEvents work in test project } - public void Dispose() { } + public void Dispose() + { + } } \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/ScalarTests.cs b/test/Linq2GraphQL.Tests/ScalarTests.cs index bda4f5fb..410fafb4 100644 --- a/test/Linq2GraphQL.Tests/ScalarTests.cs +++ b/test/Linq2GraphQL.Tests/ScalarTests.cs @@ -1,50 +1,42 @@ -using Linq2GraphQL.TestClient; -using Linq2GraphQL.TestClientNullable; +using Linq2GraphQL.TestClientNullable; +namespace Linq2GraphQL.Tests; -namespace Linq2GraphQL.Tests +public class ScalarTests : IClassFixture { + private readonly SampleNullableClient sampleClient; - - - public class ScalarTests : IClassFixture + public ScalarTests(SampleNullableClientFixture safeModeClient) { - private readonly SampleNullableClient sampleClient; - - public ScalarTests(SampleNullableClientFixture safeModeClient) - { - sampleClient = safeModeClient.sampleClient; - } - - [Fact] - public async Task GetScalar() - { - var result = await sampleClient - .Query - .Person() - .Select() - .ExecuteAsync(); - - Assert.NotNull(result.MacAddress); - Assert.NotNull(result.Longitude); - } - - [Fact] - public async Task SetScalar() - { - var result = await sampleClient - .Mutation - .UpdatePerson(person: new PersonInput { Name = "Peter", MacAddress = new MacAddress("01-23-45-67-89-ab"), Longitude = new Longitude { Value = "14° 24' 0\" E" } }) - .Select() - .ExecuteAsync(); - + sampleClient = safeModeClient.sampleClient; + } + [Fact] + public async Task GetScalar() + { + var result = await sampleClient + .Query + .Person() + .Select() + .ExecuteAsync(); + + Assert.NotNull(result.MacAddress); + Assert.NotNull(result.Longitude); + } - Assert.NotNull(result); - } + [Fact] + public async Task SetScalar() + { + var result = await sampleClient + .Mutation + .UpdatePerson(new() + { + Name = "Peter", MacAddress = new("01-23-45-67-89-ab"), Longitude = new() { Value = "14° 24' 0\" E" } + }) + .Select() + .ExecuteAsync(); + Assert.NotNull(result); } - -} - +} \ No newline at end of file diff --git a/test/Linq2GraphQL.Tests/SubscriptionTests.cs b/test/Linq2GraphQL.Tests/SubscriptionTests.cs index 200a5a3a..6b2bb39b 100644 --- a/test/Linq2GraphQL.Tests/SubscriptionTests.cs +++ b/test/Linq2GraphQL.Tests/SubscriptionTests.cs @@ -17,10 +17,7 @@ public async Task NoParameter() var customerName = "JockeD"; var customerInput = new CustomerInput { - CustomerName = customerName, - CustomerId = Guid.NewGuid(), - Status = CustomerStatus.Active, - Orders = new() + CustomerName = customerName, CustomerId = Guid.NewGuid(), Status = CustomerStatus.Active, Orders = new() }; var subscription = await sampleClient