Skip to content

Commit 9eeb5f2

Browse files
committed
Add Encoding and fixup tests
1 parent beb8570 commit 9eeb5f2

File tree

63 files changed

+509
-274
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+509
-274
lines changed

src/GqlPlus.Codec/Encoding/AllEncoders.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public static IServiceCollection AddEncoders(this IServiceCollection services)
2222
.AddEncoder<DirectivesModel, DirectivesEncoder>()
2323
.AddEncoder<DirectiveModel, DirectiveEncoder>()
2424
.AddSingleton<AndBaseTypeEncoders<DirectiveModel>>()
25+
.AddEncoder<OperationsModel, OperationsEncoder>()
26+
.AddEncoder<OperationModel, OperationEncoder>()
27+
.AddSingleton<AndBaseTypeEncoders<OperationModel>>()
2528
.AddEncoder<SettingModel, SettingEncoder>()
2629
// Types
2730
.AddEncoder<BaseTypeModel, AllTypesEncoder>()

src/GqlPlus.Codec/Encoding/GlobalsEncoders.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ internal override Structured Encode(DirectiveModel model)
5959
.Add("repeatable", model.Repeatable);
6060
}
6161

62+
internal class OperationsEncoder(
63+
AndBaseTypeEncoders<OperationModel> and
64+
) : AndTypeEncoder<OperationsModel, OperationModel>("operation", and)
65+
{ }
66+
67+
internal class OperationEncoder
68+
: AliasedEncoder<OperationModel>
69+
{
70+
internal override Structured Encode(OperationModel model)
71+
=> base.Encode(model)
72+
.Add("category", model.Category)
73+
.Add("operation", model.Operation);
74+
}
75+
6276
internal class SettingEncoder(
6377
IEncoder<ConstantModel> constant
6478
) : NamedEncoder<SettingModel>

src/GqlPlus.Codec/Encoding/SchemaEncoder.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
internal class SchemaEncoder(
44
IEncoder<CategoriesModel> categories,
55
IEncoder<DirectivesModel> directives,
6+
IEncoder<OperationsModel> operations,
67
IEncoder<BaseTypeModel> types,
78
IEncoder<SettingModel> settings
89
) : AliasedEncoder<SchemaModel>
@@ -11,6 +12,7 @@ internal override Structured Encode(SchemaModel model)
1112
=> base.Encode(model)
1213
.AddMap("categories", model.GetCategories(default), categories, "_Categories")
1314
.AddMap("directives", model.GetDirectives(default), directives, "_Directives")
15+
.AddMap("operations", model.GetOperations(default), operations, "_Operations")
1416
.AddMap("types", model.GetTypes(default), types, "_Type")
1517
.AddMap("settings", model.GetSettings(default), settings, "_Setting")
1618
.Add("_errors", model.Errors.Encode());

test/GqlPlus.Codec.ClassTests/Encoding/SchemaEncoderTests.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using GqlPlus.Ast;
22
using GqlPlus.Token;
3+
using OpenTelemetry.Instrumentation.Quartz;
34

45
namespace GqlPlus.Encoding;
56

@@ -8,17 +9,19 @@ public class SchemaEncoderTests
89
{
910
private readonly IEncoder<CategoriesModel> _categories;
1011
private readonly IEncoder<DirectivesModel> _directives;
12+
private readonly IEncoder<OperationsModel> _operations;
1113
private readonly IEncoder<BaseTypeModel> _types;
1214
private readonly IEncoder<SettingModel> _settings;
1315

1416
public SchemaEncoderTests()
1517
{
1618
_categories = RFor<CategoriesModel>();
1719
_directives = RFor<DirectivesModel>();
20+
_operations = RFor<OperationsModel>();
1821
_types = RFor<BaseTypeModel>();
1922
_settings = RFor<SettingModel>();
2023

21-
Encoder = new SchemaEncoder(_categories, _directives, _types, _settings);
24+
Encoder = new SchemaEncoder(_categories, _directives, _operations, _types, _settings);
2225
}
2326

2427
protected override IEncoder<SchemaModel> Encoder { get; }
@@ -54,6 +57,7 @@ public void Encode_WithAll_ReturnsExpected(
5457

5558
EncodeReturns(_categories, Arg.Any<CategoriesModel>(), new Structured(categoryName, "_Categories"));
5659
EncodeReturns(_directives, Arg.Any<DirectivesModel>(), new Structured(directiveName, "_Directives"));
60+
EncodeReturns(_operations, Arg.Any<OperationsModel>(), new Structured(operationName, "_Operations"));
5761
EncodeReturns(_settings, Arg.Any<SettingModel>(), new Structured(settingName, "_Setting"));
5862
EncodeReturns(_types, Arg.Any<BaseTypeModel>(), new Structured(typeName, "_TypeOutput"));
5963

@@ -65,6 +69,7 @@ public void Encode_WithAll_ReturnsExpected(
6569
"categories: !_Map_Categories", $" !_Identifier {categoryName}: !_Categories {categoryName}",
6670
"directives: !_Map_Directives", $" !_Identifier {directiveName}: !_Directives {directiveName}",
6771
"name: " + name,
72+
"operations: !_Map_Operations", $" !_Identifier {operationName}: !_Operations {operationName}",
6873
"settings: !_Map_Setting", $" !_Identifier {settingName}: !_Setting {settingName}",
6974
"types: !_Map_Type", $" !_Identifier {typeName}: !_TypeOutput {typeName}"
7075
]);

test/GqlPlus.Codec.ComponentTests/Models/default.liquid

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@
7373
{%- render 'directive' for directives as directive %}
7474
</article>
7575
{%- endif -%}
76+
{%- if operations %}
77+
<article>
78+
<header>
79+
<h1>Operations</h1>
80+
</header>
81+
{%- render 'operation' for operations as operation %}
82+
</article>
83+
{%- endif -%}
7684
{%- if settings %}
7785
<article>
7886
<header>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<article>
2+
{%- assign op = operation[1] %}
3+
{%- render 'heading', dec: op, label: "Operation" -%}
4+
<p> Category: {{ op.category }} </p>
5+
<p> Operation: {{ op.operation }} </p>
6+
</article>

test/GqlPlus.Codec.ComponentTests/Sample/SamplePlainTests/!ALL.verified.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,20 @@ directives: !_Map_Directives
146146
name: InDrctParamOpt
147147
repeatable: false
148148
name: Schema
149+
operations: !_Map_Operations
150+
!_Identifier Op: !_Operations
151+
operation: !_Operation
152+
category: cat
153+
name: Op
154+
operation: TBC
155+
type: !_TypeOutput
156+
name: Op
157+
typeKind: !_TypeKind Output
158+
!_Identifier Operation: !_Operation
159+
aliases: [Op1,Op2]
160+
category: op
161+
name: Operation
162+
operation: TBC
149163
settings: !_Map_Setting
150164
!_Identifier descr: !_Setting
151165
description: 'Option Descr'

test/GqlPlus.Codec.ComponentTests/Sample/SamplePlainTests/+Globals.verified.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@ directives: !_Map_Directives
9696
name: InDrctParamOpt
9797
repeatable: false
9898
name: Schema
99+
operations: !_Map_Operations
100+
!_Identifier Op: !_Operation
101+
category: cat
102+
name: Op
103+
operation: TBC
99104
settings: !_Map_Setting
100105
!_Identifier descr: !_Setting
101106
description: 'Option Descr'

test/GqlPlus.Codec.ComponentTests/Sample/SamplePlainTests/+Merges.verified.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ directives: !_Map_Directives
5353
name: InDrctParam
5454
repeatable: false
5555
name: Schema
56+
operations: !_Map_Operations
57+
!_Identifier Operation: !_Operation
58+
aliases: [Op1,Op2]
59+
category: op
60+
name: Operation
61+
operation: TBC
5662
settings: !_Map_Setting
5763
!_Identifier merged: !_Setting
5864
name: merged

test/GqlPlus.Codec.ComponentTests/Sample/SamplePlainTests/Globals/operation-category.verified.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ categories: !_Map_Categories
66
name: Cat
77
typeKind: !_TypeKind Output
88
resolution: !_Resolution Parallel
9+
operations: !_Map_Operations
10+
!_Identifier Op: !_Operation
11+
category: cat
12+
name: Op
13+
operation: TBC
914
types: !_Map_Type
1015
!_Identifier Cat: !_TypeOutput
1116
name: Cat

0 commit comments

Comments
 (0)