From d979dd44552f38ce121e02d679929e71c8a5a108 Mon Sep 17 00:00:00 2001 From: Struan Judd Date: Sat, 8 Feb 2025 16:25:54 +1300 Subject: [PATCH] Improve Union parent samples --- .../Verifying/Schema/AstParentVerifier.cs | 1 + .../Schema/Simple/VerifyUnionTypes.cs | 6 +- test/GqlPlus.ComponentTestBase/BuildData.t4 | 2 +- .../OperationData.gen.cs | 3 +- .../GqlPlus.ComponentTestBase/SampleChecks.cs | 2 - .../SampleData.gen.cs | 3 +- .../SampleSchemaChecks.cs | 2 - .../InvalidSimple/union-parent-diff.graphql+ | 3 + .../union-parent-diff.verify-errors | 3 + .../InvalidSimple/union-parent-more.graphql+ | 4 +- .../union-parent-recurse.graphql+ | 2 +- .../InvalidSimple/union-parent-undef.graphql+ | 1 + .../union-parent-undef.verify-errors | 1 + .../InvalidSimple/union-parent-wrong.graphql+ | 2 + .../union-parent-wrong.verify-errors | 1 + .../InvalidSimple/union-parent.graphql+ | 2 +- .../union-recurse-parent.graphql+ | 2 +- .../ValidMerges/union-same-parent.graphql+ | 3 + .../ValidSimple/union-parent-dup.graphql+ | 2 + .../Samples/git-details.txt | 2 +- .../SchemaData.gen.cs | 8 ++- .../SchemaDataBase.cs | 5 +- .../BuiltInTests.cs | 1 - .../SampleModelTests.cs | 4 +- .../SchemaJsonTests.cs | 1 - .../SchemaJsonTests/!ALL.verified.json | 55 +++++++++++++++++++ .../SchemaJsonTests/!Merges.verified.json | 46 ++++++++++++++++ .../SchemaJsonTests/!Simple.verified.json | 9 +++ .../SchemaJsonTests/union-alias.verified.json | 2 +- .../union-parent-dup.verified.json | 52 ++++++++++++++++++ .../union-same-parent.verified.json | 52 ++++++++++++++++++ .../SchemaYamlTests/!ALL.verified.txt | 31 +++++++++++ .../SchemaYamlTests/!Merges.verified.txt | 26 +++++++++ .../SchemaYamlTests/!Simple.verified.txt | 5 ++ .../union-parent-dup.verified.txt | 28 ++++++++++ .../union-same-parent.verified.txt | 28 ++++++++++ .../SchemaMergeTests.cs | 4 -- .../SchemaMergeTests/!ALL.verified.txt | 15 +++++ .../SchemaMergeTests/!Merges.verified.txt | 13 +++++ .../SchemaMergeTests/!Simple.verified.txt | 2 + .../_union-same-parent.verified.txt | 17 ++++++ .../union-same-parent.verified.txt | 17 ++++++ .../GlobalUsings.cs | 1 - .../OperationVerifyTests.cs | 2 - .../SampleVerifyTests.cs | 1 - 45 files changed, 434 insertions(+), 38 deletions(-) create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.graphql+ create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.verify-errors create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.graphql+ create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.verify-errors create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.graphql+ create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.verify-errors create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/ValidMerges/union-same-parent.graphql+ create mode 100644 test/GqlPlus.ComponentTestBase/Samples/Schema/ValidSimple/union-parent-dup.graphql+ create mode 100644 test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-parent-dup.verified.json create mode 100644 test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-same-parent.verified.json create mode 100644 test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-parent-dup.verified.txt create mode 100644 test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-same-parent.verified.txt create mode 100644 test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/_union-same-parent.verified.txt create mode 100644 test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/union-same-parent.verified.txt diff --git a/src/GqlPlus.Verifier/Verifying/Schema/AstParentVerifier.cs b/src/GqlPlus.Verifier/Verifying/Schema/AstParentVerifier.cs index 3e806d27..98353ed7 100644 --- a/src/GqlPlus.Verifier/Verifying/Schema/AstParentVerifier.cs +++ b/src/GqlPlus.Verifier/Verifying/Schema/AstParentVerifier.cs @@ -57,6 +57,7 @@ private void CheckTypedParentType(ParentUsage input, TContext context, boo onParent?.Invoke(parentType); } } + return; } diff --git a/src/GqlPlus.Verifier/Verifying/Schema/Simple/VerifyUnionTypes.cs b/src/GqlPlus.Verifier/Verifying/Schema/Simple/VerifyUnionTypes.cs index 945f64fc..474734e4 100644 --- a/src/GqlPlus.Verifier/Verifying/Schema/Simple/VerifyUnionTypes.cs +++ b/src/GqlPlus.Verifier/Verifying/Schema/Simple/VerifyUnionTypes.cs @@ -22,6 +22,8 @@ protected override UsageContext MakeContext(IGqlpUnion usage, IGqlpType[] aliase protected override void UsageValue(IGqlpUnion usage, UsageContext context) { + base.UsageValue(usage, context); + foreach (IGqlpUnionItem member in usage.Items) { context.AddError(usage, "Union", $"'{member.Name}' not defined", CheckMember(usage.Name, member, context, CheckTypeLabel)); } @@ -31,9 +33,7 @@ protected override void UsageValue(IGqlpUnion usage, UsageContext context) } void CheckTypeLabel(string name, IGqlpType type) - { - context.AddError(usage, "union", $"Type kind mismatch for {name}. Found {type?.Label}", type is not IGqlpSimple and not IGqlpTypeSpecial); - } + => context.AddError(usage, "union", $"Type kind mismatch for {name}. Found {type?.Label}", type is not IGqlpSimple and not IGqlpTypeSpecial); } private static bool CheckMember(string name, IGqlpUnionItem member, UsageContext context, Action? checkType = null) diff --git a/test/GqlPlus.ComponentTestBase/BuildData.t4 b/test/GqlPlus.ComponentTestBase/BuildData.t4 index 08f8d42b..6bc465b9 100644 --- a/test/GqlPlus.ComponentTestBase/BuildData.t4 +++ b/test/GqlPlus.ComponentTestBase/BuildData.t4 @@ -17,7 +17,7 @@ private void BuildData(string directory, string prefix) { var gitFile = samplesDir.GetFiles("git-details.txt")[0]; string gitDetails; using (var gitText = gitFile.OpenText()) { - gitDetails = gitText.ReadToEnd(); + gitDetails = gitText.ReadToEnd().Trim(); }#> // Generated from <#= relative #> // Collected from <#= gitDetails #> diff --git a/test/GqlPlus.ComponentTestBase/OperationData.gen.cs b/test/GqlPlus.ComponentTestBase/OperationData.gen.cs index 963b824a..cdaf578d 100644 --- a/test/GqlPlus.ComponentTestBase/OperationData.gen.cs +++ b/test/GqlPlus.ComponentTestBase/OperationData.gen.cs @@ -1,6 +1,5 @@ // Generated from .\test\GqlPlus.ComponentTestBase\Samples\Operation -// Collected from 5e5c83d (HEAD -> union-tests, origin/yaml, origin/main, origin/json, origin/include, origin/HEAD, main) 2024-09-24 Merge pull request #3 from graphql-plus/samples - +// Collected from 247728f (HEAD -> union-tests, origin/union-tests) 2025-02-08 Improve Union parent samples namespace GqlPlus; diff --git a/test/GqlPlus.ComponentTestBase/SampleChecks.cs b/test/GqlPlus.ComponentTestBase/SampleChecks.cs index f24a1117..308b3ff5 100644 --- a/test/GqlPlus.ComponentTestBase/SampleChecks.cs +++ b/test/GqlPlus.ComponentTestBase/SampleChecks.cs @@ -1,7 +1,5 @@ using GqlPlus.Abstractions; -using Microsoft.VisualStudio.TestPlatform.ObjectModel; - namespace GqlPlus; public class SampleChecks diff --git a/test/GqlPlus.ComponentTestBase/SampleData.gen.cs b/test/GqlPlus.ComponentTestBase/SampleData.gen.cs index 65738fd5..d1a272d7 100644 --- a/test/GqlPlus.ComponentTestBase/SampleData.gen.cs +++ b/test/GqlPlus.ComponentTestBase/SampleData.gen.cs @@ -1,6 +1,5 @@ // Generated from .\test\GqlPlus.ComponentTestBase\Samples -// Collected from 5e5c83d (HEAD -> union-tests, origin/yaml, origin/main, origin/json, origin/include, origin/HEAD, main) 2024-09-24 Merge pull request #3 from graphql-plus/samples - +// Collected from 247728f (HEAD -> union-tests, origin/union-tests) 2025-02-08 Improve Union parent samples namespace GqlPlus; diff --git a/test/GqlPlus.ComponentTestBase/SampleSchemaChecks.cs b/test/GqlPlus.ComponentTestBase/SampleSchemaChecks.cs index 8250dc99..d6838402 100644 --- a/test/GqlPlus.ComponentTestBase/SampleSchemaChecks.cs +++ b/test/GqlPlus.ComponentTestBase/SampleSchemaChecks.cs @@ -3,8 +3,6 @@ using GqlPlus.Result; using GqlPlus.Token; -using Microsoft.VisualStudio.TestPlatform.ObjectModel; - namespace GqlPlus; public class SampleSchemaChecks( diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.graphql+ new file mode 100644 index 00000000..70612af7 --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.graphql+ @@ -0,0 +1,3 @@ +union Test { :Parent Number } +union Test { Number } +union Parent { String } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.verify-errors b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.verify-errors new file mode 100644 index 00000000..72a215a1 --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-diff.verify-errors @@ -0,0 +1,3 @@ +Multiple Unions with name 'Test' can't be merged., +Group of Union for 'Test' is not singular Parent['', 'Parent'], +Multiple Types with name 'Test' can't be merged. diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-more.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-more.graphql+ index b0a2075f..9f38200f 100644 --- a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-more.graphql+ +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-more.graphql+ @@ -1,4 +1,4 @@ -union Test { :Parent } +union Test { :Parent String } union Parent { More } -union More { :Bad } +union More { :Bad String } union Bad { Test } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-recurse.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-recurse.graphql+ index 4e7735dd..aa21eb8f 100644 --- a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-recurse.graphql+ +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-recurse.graphql+ @@ -1,3 +1,3 @@ -union Test { :Parent } +union Test { :Parent String } union Parent { Bad } union Bad { Test } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.graphql+ new file mode 100644 index 00000000..32d51fc7 --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.graphql+ @@ -0,0 +1 @@ +union Test { :Parent Number } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.verify-errors b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.verify-errors new file mode 100644 index 00000000..c5ff5bde --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-undef.verify-errors @@ -0,0 +1 @@ +Invalid Union Parent. 'Parent' not defined. \ No newline at end of file diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.graphql+ new file mode 100644 index 00000000..7b539815 --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.graphql+ @@ -0,0 +1,2 @@ +union Test { :Parent Number } +output Parent { } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.verify-errors b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.verify-errors new file mode 100644 index 00000000..691bc844 --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent-wrong.verify-errors @@ -0,0 +1 @@ +Invalid Union Parent. 'Parent' invalid type. Found 'Output'. \ No newline at end of file diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent.graphql+ index d05c9728..67f0c88e 100644 --- a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent.graphql+ +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-parent.graphql+ @@ -1,2 +1,2 @@ -union Test { :Parent } +union Test { :Parent String } union Parent { Test } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-recurse-parent.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-recurse-parent.graphql+ index c8669ac2..0c55854b 100644 --- a/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-recurse-parent.graphql+ +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/InvalidSimple/union-recurse-parent.graphql+ @@ -1,3 +1,3 @@ union Test { Bad } -union Bad { :Parent } +union Bad { :Parent String } union Parent { Test } diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidMerges/union-same-parent.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidMerges/union-same-parent.graphql+ new file mode 100644 index 00000000..c3d1d93f --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidMerges/union-same-parent.graphql+ @@ -0,0 +1,3 @@ +union UnSameParent { :UnParent Boolean } +union UnSameParent { :UnParent Boolean } +union UnParent { String } \ No newline at end of file diff --git a/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidSimple/union-parent-dup.graphql+ b/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidSimple/union-parent-dup.graphql+ new file mode 100644 index 00000000..4e07a96b --- /dev/null +++ b/test/GqlPlus.ComponentTestBase/Samples/Schema/ValidSimple/union-parent-dup.graphql+ @@ -0,0 +1,2 @@ +union UnionPrnt { :PrntUnion Number } +union PrntUnion { Number } diff --git a/test/GqlPlus.ComponentTestBase/Samples/git-details.txt b/test/GqlPlus.ComponentTestBase/Samples/git-details.txt index ceb3f324..522159bf 100644 --- a/test/GqlPlus.ComponentTestBase/Samples/git-details.txt +++ b/test/GqlPlus.ComponentTestBase/Samples/git-details.txt @@ -1 +1 @@ -5e5c83d (HEAD -> union-tests, origin/yaml, origin/main, origin/json, origin/include, origin/HEAD, main) 2024-09-24 Merge pull request #3 from graphql-plus/samples +247728f (HEAD -> union-tests, origin/union-tests) 2025-02-08 Improve Union parent samples diff --git a/test/GqlPlus.ComponentTestBase/SchemaData.gen.cs b/test/GqlPlus.ComponentTestBase/SchemaData.gen.cs index 09720654..f6f74f28 100644 --- a/test/GqlPlus.ComponentTestBase/SchemaData.gen.cs +++ b/test/GqlPlus.ComponentTestBase/SchemaData.gen.cs @@ -1,6 +1,5 @@ // Generated from .\test\GqlPlus.ComponentTestBase\Samples\Schema -// Collected from 5e5c83d (HEAD -> union-tests, origin/yaml, origin/main, origin/json, origin/include, origin/HEAD, main) 2024-09-24 Merge pull request #3 from graphql-plus/samples - +// Collected from 247728f (HEAD -> union-tests, origin/union-tests) 2025-02-08 Improve Union parent samples namespace GqlPlus; @@ -145,8 +144,11 @@ public SchemaInvalidSimpleData() Add("union-more"); Add("union-more-parent"); Add("union-parent"); + Add("union-parent-diff"); Add("union-parent-more"); Add("union-parent-recurse"); + Add("union-parent-undef"); + Add("union-parent-wrong"); Add("union-recurse"); Add("union-recurse-parent"); Add("union-self"); @@ -224,6 +226,7 @@ public SchemaValidMergesData() Add("union-alias"); Add("union-diff"); Add("union-same"); + Add("union-same-parent"); } } @@ -303,5 +306,6 @@ public SchemaValidSimpleData() Add("enum-parent-alias"); Add("enum-parent-dup"); Add("union-parent"); + Add("union-parent-dup"); } } diff --git a/test/GqlPlus.ComponentTestBase/SchemaDataBase.cs b/test/GqlPlus.ComponentTestBase/SchemaDataBase.cs index 52b79674..481ba1cc 100644 --- a/test/GqlPlus.ComponentTestBase/SchemaDataBase.cs +++ b/test/GqlPlus.ComponentTestBase/SchemaDataBase.cs @@ -1,11 +1,8 @@ using GqlPlus.Abstractions.Schema; -using GqlPlus.Merging; using GqlPlus.Parsing; using GqlPlus.Result; using GqlPlus.Token; -using Grpc.Core; - namespace GqlPlus; public class SchemaDataBase( @@ -30,7 +27,7 @@ protected static IEnumerable ReplaceKeys(IDictionary inp : [k]) .Order(); - protected async static Task> ReplaceSchemaKeys(string group) + protected static async Task> ReplaceSchemaKeys(string group) { IEnumerable> tasks = SchemaValidData .Files[group] diff --git a/test/GqlPlus.Modeller.ComponentTests/BuiltInTests.cs b/test/GqlPlus.Modeller.ComponentTests/BuiltInTests.cs index 9df7392a..f58360ce 100644 --- a/test/GqlPlus.Modeller.ComponentTests/BuiltInTests.cs +++ b/test/GqlPlus.Modeller.ComponentTests/BuiltInTests.cs @@ -69,7 +69,6 @@ public void ModelAllBasicTypes() Declarations = BuiltIn.Basic }; - ITypesContext context = renderer.Context(); RenderStructure result = renderer.RenderAst(schema, context); diff --git a/test/GqlPlus.Modeller.ComponentTests/SampleModelTests.cs b/test/GqlPlus.Modeller.ComponentTests/SampleModelTests.cs index 4c16c933..a44af40a 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SampleModelTests.cs +++ b/test/GqlPlus.Modeller.ComponentTests/SampleModelTests.cs @@ -1,6 +1,4 @@ -using FluentAssertions.Execution; - -using GqlPlus; +using GqlPlus; using GqlPlus.Abstractions.Schema; using GqlPlus.Convert; using GqlPlus.Parsing; diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests.cs b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests.cs index b9b4279b..b16ada57 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests.cs +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests.cs @@ -2,7 +2,6 @@ using GqlPlus.Convert; using GqlPlus.Merging; using GqlPlus.Parsing; -using GqlPlus.Resolving; using GqlPlus.Result; namespace GqlPlus; diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!ALL.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!ALL.verified.json index 97f7a2dc..5b84879a 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!ALL.verified.json +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!ALL.verified.json @@ -10610,12 +10610,21 @@ "$tag": "_UnionMember", "name": "String", "union": "UnionPrnt" + }, + { + "$tag": "_UnionMember", + "name": "Number", + "union": "UnionPrnt" } ], "items": [ { "$tag": "_Aliased", "value": "String" + }, + { + "$tag": "_Aliased", + "value": "Number" } ], "name": "UnionPrnt", @@ -10626,6 +10635,24 @@ }, "typeKind": "Union" }, + "UnParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "String" + } + ], + "name": "UnParent", + "typeKind": "Union" + }, "UnSame": { "$tag": "_TypeUnion", "allItems": [ @@ -10643,6 +10670,34 @@ ], "name": "UnSame", "typeKind": "Union" + }, + "UnSameParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + }, + { + "$tag": "_UnionMember", + "name": "Boolean", + "union": "UnSameParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "Boolean" + } + ], + "name": "UnSameParent", + "parent": { + "$tag": "_TypeRef(_SimpleKind)", + "name": "UnParent", + "typeKind": "Union" + }, + "typeKind": "Union" } } } diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Merges.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Merges.verified.json index 62aa9e45..7db4a11b 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Merges.verified.json +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Merges.verified.json @@ -1132,6 +1132,24 @@ "name": "UnDiff", "typeKind": "Union" }, + "UnParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "String" + } + ], + "name": "UnParent", + "typeKind": "Union" + }, "UnSame": { "$tag": "_TypeUnion", "allItems": [ @@ -1149,6 +1167,34 @@ ], "name": "UnSame", "typeKind": "Union" + }, + "UnSameParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + }, + { + "$tag": "_UnionMember", + "name": "Boolean", + "union": "UnSameParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "Boolean" + } + ], + "name": "UnSameParent", + "parent": { + "$tag": "_TypeRef(_SimpleKind)", + "name": "UnParent", + "typeKind": "Union" + }, + "typeKind": "Union" } } } diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Simple.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Simple.verified.json index 0b2f410b..3ead1c2b 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Simple.verified.json +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/!Simple.verified.json @@ -867,12 +867,21 @@ "$tag": "_UnionMember", "name": "String", "union": "UnionPrnt" + }, + { + "$tag": "_UnionMember", + "name": "Number", + "union": "UnionPrnt" } ], "items": [ { "$tag": "_Aliased", "value": "String" + }, + { + "$tag": "_Aliased", + "value": "Number" } ], "name": "UnionPrnt", diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-alias.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-alias.verified.json index 4640ba98..80b17e98 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-alias.verified.json +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-alias.verified.json @@ -31,4 +31,4 @@ "typeKind": "Union" } } -} \ No newline at end of file +} diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-parent-dup.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-parent-dup.verified.json new file mode 100644 index 00000000..3d7ad9d3 --- /dev/null +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-parent-dup.verified.json @@ -0,0 +1,52 @@ +{ + "$tag": "_Schema", + "types": { + "$tag": "_Map_Type", + "PrntUnion": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "Number", + "union": "PrntUnion" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "Number" + } + ], + "name": "PrntUnion", + "typeKind": "Union" + }, + "UnionPrnt": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "Number", + "union": "PrntUnion" + }, + { + "$tag": "_UnionMember", + "name": "Number", + "union": "UnionPrnt" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "Number" + } + ], + "name": "UnionPrnt", + "parent": { + "$tag": "_TypeRef(_SimpleKind)", + "name": "PrntUnion", + "typeKind": "Union" + }, + "typeKind": "Union" + } + } +} diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-same-parent.verified.json b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-same-parent.verified.json new file mode 100644 index 00000000..ffb7438a --- /dev/null +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaJsonTests/union-same-parent.verified.json @@ -0,0 +1,52 @@ +{ + "$tag": "_Schema", + "types": { + "$tag": "_Map_Type", + "UnParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "String" + } + ], + "name": "UnParent", + "typeKind": "Union" + }, + "UnSameParent": { + "$tag": "_TypeUnion", + "allItems": [ + { + "$tag": "_UnionMember", + "name": "String", + "union": "UnParent" + }, + { + "$tag": "_UnionMember", + "name": "Boolean", + "union": "UnSameParent" + } + ], + "items": [ + { + "$tag": "_Aliased", + "value": "Boolean" + } + ], + "name": "UnSameParent", + "parent": { + "$tag": "_TypeRef(_SimpleKind)", + "name": "UnParent", + "typeKind": "Union" + }, + "typeKind": "Union" + } + } +} diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!ALL.verified.txt b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!ALL.verified.txt index 682eb92f..4440dc9b 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!ALL.verified.txt +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!ALL.verified.txt @@ -5685,6 +5685,16 @@ types: !_Map_Type name: Number name: UnDiff typeKind: !_TypeKind Union + !_Identifier UnParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + items: + - !_Aliased + name: String + name: UnParent + typeKind: !_TypeKind Union !_Identifier UnSame: !_TypeUnion allItems: - !_UnionMember @@ -5695,6 +5705,22 @@ types: !_Map_Type name: Boolean name: UnSame typeKind: !_TypeKind Union + !_Identifier UnSameParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + - !_UnionMember + name: Boolean + union: UnSameParent + items: + - !_Aliased + name: Boolean + name: UnSameParent + parent: !_TypeRef(_SimpleKind) + name: UnParent + typeKind: !_SimpleKind Union + typeKind: !_TypeKind Union !_Identifier UnionPrnt: !_TypeUnion allItems: - !_UnionMember @@ -5703,9 +5729,14 @@ types: !_Map_Type - !_UnionMember name: String union: UnionPrnt + - !_UnionMember + name: Number + union: UnionPrnt items: - !_Aliased name: String + - !_Aliased + name: Number name: UnionPrnt parent: !_TypeRef(_SimpleKind) name: PrntUnion diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Merges.verified.txt b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Merges.verified.txt index bcf975a9..a1cea860 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Merges.verified.txt +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Merges.verified.txt @@ -657,6 +657,16 @@ types: !_Map_Type name: Number name: UnDiff typeKind: !_TypeKind Union + !_Identifier UnParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + items: + - !_Aliased + name: String + name: UnParent + typeKind: !_TypeKind Union !_Identifier UnSame: !_TypeUnion allItems: - !_UnionMember @@ -666,4 +676,20 @@ types: !_Map_Type - !_Aliased name: Boolean name: UnSame + typeKind: !_TypeKind Union + !_Identifier UnSameParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + - !_UnionMember + name: Boolean + union: UnSameParent + items: + - !_Aliased + name: Boolean + name: UnSameParent + parent: !_TypeRef(_SimpleKind) + name: UnParent + typeKind: !_SimpleKind Union typeKind: !_TypeKind Union \ No newline at end of file diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Simple.verified.txt b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Simple.verified.txt index d07512e8..6507c6a8 100644 --- a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Simple.verified.txt +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/!Simple.verified.txt @@ -511,9 +511,14 @@ types: !_Map_Type - !_UnionMember name: String union: UnionPrnt + - !_UnionMember + name: Number + union: UnionPrnt items: - !_Aliased name: String + - !_Aliased + name: Number name: UnionPrnt parent: !_TypeRef(_SimpleKind) name: PrntUnion diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-parent-dup.verified.txt b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-parent-dup.verified.txt new file mode 100644 index 00000000..138474b5 --- /dev/null +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-parent-dup.verified.txt @@ -0,0 +1,28 @@ +!_Schema +types: !_Map_Type + !_Identifier PrntUnion: !_TypeUnion + allItems: + - !_UnionMember + name: Number + union: PrntUnion + items: + - !_Aliased + name: Number + name: PrntUnion + typeKind: !_TypeKind Union + !_Identifier UnionPrnt: !_TypeUnion + allItems: + - !_UnionMember + name: Number + union: PrntUnion + - !_UnionMember + name: Number + union: UnionPrnt + items: + - !_Aliased + name: Number + name: UnionPrnt + parent: !_TypeRef(_SimpleKind) + name: PrntUnion + typeKind: !_SimpleKind Union + typeKind: !_TypeKind Union \ No newline at end of file diff --git a/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-same-parent.verified.txt b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-same-parent.verified.txt new file mode 100644 index 00000000..87b7b19b --- /dev/null +++ b/test/GqlPlus.Modeller.ComponentTests/SchemaYamlTests/union-same-parent.verified.txt @@ -0,0 +1,28 @@ +!_Schema +types: !_Map_Type + !_Identifier UnParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + items: + - !_Aliased + name: String + name: UnParent + typeKind: !_TypeKind Union + !_Identifier UnSameParent: !_TypeUnion + allItems: + - !_UnionMember + name: String + union: UnParent + - !_UnionMember + name: Boolean + union: UnSameParent + items: + - !_Aliased + name: Boolean + name: UnSameParent + parent: !_TypeRef(_SimpleKind) + name: UnParent + typeKind: !_SimpleKind Union + typeKind: !_TypeKind Union \ No newline at end of file diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests.cs b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests.cs index 31a65116..ced8c3e1 100644 --- a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests.cs +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests.cs @@ -1,11 +1,7 @@ using GqlPlus.Abstractions.Schema; -using GqlPlus.Ast.Schema; using GqlPlus.Merging; using GqlPlus.Parsing; using GqlPlus.Result; -using GqlPlus.Token; - -using VerifyXunit; namespace GqlPlus; diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!ALL.verified.txt b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!ALL.verified.txt index 57faea67..47746c0e 100644 --- a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!ALL.verified.txt +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!ALL.verified.txt @@ -3866,6 +3866,19 @@ Success !UM I@016/0001 Boolean } +{ + !Un I@007/0001 + UnSameParent + :UnParent + !UM I@032/0001 + Boolean +} +{ + !Un I@007/0003 + UnParent + !UM I@018/0003 + String +} { !Ou I@008/0002 Cat @@ -4156,6 +4169,8 @@ Number :PrntUnion !UM I@030/0001 String + !UM I@030/0001 + Number } { !Un I@007/0002 diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Merges.verified.txt b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Merges.verified.txt index eb03a4f3..3c8a1c5f 100644 --- a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Merges.verified.txt +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Merges.verified.txt @@ -574,4 +574,17 @@ Success !UM I@016/0001 Boolean } +{ + !Un I@007/0001 + UnSameParent + :UnParent + !UM I@032/0001 + Boolean +} +{ + !Un I@007/0003 + UnParent + !UM I@018/0003 + String +} ] \ No newline at end of file diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Simple.verified.txt b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Simple.verified.txt index df726cf3..3d728e9d 100644 --- a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Simple.verified.txt +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/!Simple.verified.txt @@ -245,6 +245,8 @@ Number :PrntUnion !UM I@030/0001 String + !UM I@030/0001 + Number } { !Un I@007/0002 diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/_union-same-parent.verified.txt b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/_union-same-parent.verified.txt new file mode 100644 index 00000000..f698637b --- /dev/null +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/_union-same-parent.verified.txt @@ -0,0 +1,17 @@ +[ +!Sc I@001/0001 +Success +{ + !Un I@007/0001 + UnSameParent + :UnParent + !UM I@032/0001 + Boolean +} +{ + !Un I@007/0003 + UnParent + !UM I@018/0003 + String +} +] \ No newline at end of file diff --git a/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/union-same-parent.verified.txt b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/union-same-parent.verified.txt new file mode 100644 index 00000000..f698637b --- /dev/null +++ b/test/GqlPlus.Parser.ComponentTests/SchemaMergeTests/union-same-parent.verified.txt @@ -0,0 +1,17 @@ +[ +!Sc I@001/0001 +Success +{ + !Un I@007/0001 + UnSameParent + :UnParent + !UM I@032/0001 + Boolean +} +{ + !Un I@007/0003 + UnParent + !UM I@018/0003 + String +} +] \ No newline at end of file diff --git a/test/GqlPlus.Verifier.ComponentTests/GlobalUsings.cs b/test/GqlPlus.Verifier.ComponentTests/GlobalUsings.cs index 573d9abe..40f7f171 100644 --- a/test/GqlPlus.Verifier.ComponentTests/GlobalUsings.cs +++ b/test/GqlPlus.Verifier.ComponentTests/GlobalUsings.cs @@ -1,4 +1,3 @@ global using FluentAssertions; -global using FluentAssertions.Execution; global using GqlPlus.Ast; global using Xunit; diff --git a/test/GqlPlus.Verifier.ComponentTests/OperationVerifyTests.cs b/test/GqlPlus.Verifier.ComponentTests/OperationVerifyTests.cs index 803b0aa2..0e4dd728 100644 --- a/test/GqlPlus.Verifier.ComponentTests/OperationVerifyTests.cs +++ b/test/GqlPlus.Verifier.ComponentTests/OperationVerifyTests.cs @@ -4,8 +4,6 @@ using GqlPlus.Result; using GqlPlus.Token; using GqlPlus.Verifying; - -using OpenTelemetry.Trace; namespace GqlPlus; public class OperationVerifyTests( diff --git a/test/GqlPlus.Verifier.ComponentTests/SampleVerifyTests.cs b/test/GqlPlus.Verifier.ComponentTests/SampleVerifyTests.cs index 7165012e..39e5f88d 100644 --- a/test/GqlPlus.Verifier.ComponentTests/SampleVerifyTests.cs +++ b/test/GqlPlus.Verifier.ComponentTests/SampleVerifyTests.cs @@ -1,6 +1,5 @@ using GqlPlus.Abstractions.Schema; using GqlPlus.Parsing; -using GqlPlus.Result; using GqlPlus.Token; using GqlPlus.Verifying;