-
-
Notifications
You must be signed in to change notification settings - Fork 804
Expand file tree
/
Copy pathStarWarsGeneratorTests.cs
More file actions
135 lines (122 loc) · 3.35 KB
/
StarWarsGeneratorTests.cs
File metadata and controls
135 lines (122 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using static StrawberryShake.CodeGeneration.CSharp.GeneratorTestHelper;
namespace StrawberryShake.CodeGeneration.CSharp;
public class StarWarsGeneratorTests
{
[Fact]
public void Interface_With_Default_Names()
{
AssertStarWarsResult(
@"query GetHero {
hero(episode: NEW_HOPE) {
name
appearsIn
}
}");
}
[Fact]
public void Operation_With_Leaf_Argument()
{
AssertStarWarsResult(
@"query GetHero($episode: Episode) {
hero(episode: $episode) {
name
appearsIn
}
}");
}
[Fact]
public void Operation_With_Type_Argument()
{
AssertStarWarsResult(
@"mutation createReviewMut($episode: Episode!, $review: ReviewInput!) {
createReview(episode: $episode, review: $review) {
stars
commentary
}
}");
}
[Fact]
public void Interface_With_Fragment_Definition_Two_Models()
{
AssertStarWarsResult(
@"query GetHero {
hero(episode: NEW_HOPE) {
... Hero
}
}
fragment Hero on Character {
name
... Human
... Droid
friends {
nodes {
name
}
}
}
fragment Human on Human {
homePlanet
}
fragment Droid on Droid {
primaryFunction
}");
}
[Fact]
public void Subscription_With_Default_Names()
{
AssertStarWarsResult(
@"subscription OnReviewSub {
onReview(episode: NEW_HOPE) {
stars
commentary
}
}");
}
[Fact]
public void Generate_StarWarsIntegrationTest()
{
AssertStarWarsResult(
FileResource.Open("QueryWithSubscription.graphql"));
}
[Fact]
public void Generate_Client_With_Internal_Access_Modifier()
{
AssertStarWarsResult(
new AssertSettings
{
StrictValidation = true,
AccessModifier = AccessModifier.Internal
},
@"query GetHero {
hero(episode: NEW_HOPE) {
name
appearsIn
}
}");
}
[Fact]
public void StarWarsTypeNameOnUnions() =>
AssertStarWarsResult(
"""
query SearchHero {
search(text: "l") {
__typename
}
}
""");
[Fact]
public void StarWarsUnionList() =>
AssertStarWarsResult(
"""
query SearchHero {
search(text: "l") {
... on Human {
name
}
... on Droid {
name
}
}
}
""");
}