5
5
import static io .smallrye .graphql .client .core .VariableType .varType ;
6
6
import static org .junit .jupiter .api .Assertions .assertDoesNotThrow ;
7
7
import static org .junit .jupiter .api .Assertions .assertThrows ;
8
+ import static org .junit .jupiter .api .Assertions .assertTrue ;
8
9
9
10
import org .junit .jupiter .api .Test ;
11
+ import org .junit .jupiter .api .function .Executable ;
10
12
11
13
public class VariableTypesTest {
14
+ private static final String TYPE_NAME_URL = "https://spec.graphql.org/draft/#sec-Type-References" ;
15
+ private static final String LIST = "io.smallrye.graphql.client.core.VariableType.list" ;
16
+ private static final String NON_NULL = "io.smallrye.graphql.client.core.VariableType.nonNull" ;
17
+
12
18
@ Test
13
19
public void varTypesShouldNotThrowExceptionForValidName () {
14
20
assertDoesNotThrow (() -> varType ("ValidName" ));
@@ -24,12 +30,14 @@ public void varTypesShouldNotThrowExceptionForValidName() {
24
30
25
31
@ Test
26
32
public void varTypesShouldThrowExceptionForInvalidName () {
27
- assertThrows (IllegalArgumentException .class , () -> varType ("Invalid:Name" ));
28
- assertThrows (IllegalArgumentException .class , () -> varType ("Invalid,Name" ));
29
- assertThrows (IllegalArgumentException .class , () -> varType ("123InvalidName" ));
30
- assertThrows (IllegalArgumentException .class , () -> varType ("invalid-Name" ));
31
- assertThrows (IllegalArgumentException .class , () -> varType ("invalid name" ));
32
- assertThrows (IllegalArgumentException .class , () -> varType ("@invalidName" ));
33
+ assertThrowsWithUrlMessage (() -> varType ("Invalid:Name" ));
34
+ assertThrowsWithUrlMessage (() -> varType ("Invalid,Name" ));
35
+ assertThrowsWithUrlMessage (() -> varType ("123InvalidName" ));
36
+ assertThrowsWithUrlMessage (() -> varType ("invalid-Name" ));
37
+ assertThrowsWithUrlMessage (() -> varType ("invalid name" ));
38
+ assertThrowsWithUrlMessage (() -> varType ("@invalidName" ));
39
+ assertThrowsWithListMessage (() -> varType ("[invalidName]" ));
40
+ assertThrowsWithNonNullMessage (() -> varType ("invalidName!" ));
33
41
}
34
42
35
43
@ Test
@@ -47,12 +55,14 @@ public void nonNullsShouldNotThrowExceptionForValidName() {
47
55
48
56
@ Test
49
57
public void nonNullsShouldThrowExceptionForInvalidName () {
50
- assertThrows (IllegalArgumentException .class , () -> nonNull ("Invalid:Name" ));
51
- assertThrows (IllegalArgumentException .class , () -> nonNull ("Invalid,Name" ));
52
- assertThrows (IllegalArgumentException .class , () -> nonNull ("123InvalidName" ));
53
- assertThrows (IllegalArgumentException .class , () -> nonNull ("invalid-Name" ));
54
- assertThrows (IllegalArgumentException .class , () -> nonNull ("invalid name" ));
55
- assertThrows (IllegalArgumentException .class , () -> nonNull ("@invalidName" ));
58
+ assertThrowsWithUrlMessage (() -> nonNull ("Invalid:Name" ));
59
+ assertThrowsWithUrlMessage (() -> nonNull ("Invalid,Name" ));
60
+ assertThrowsWithUrlMessage (() -> nonNull ("123InvalidName" ));
61
+ assertThrowsWithUrlMessage (() -> nonNull ("invalid-Name" ));
62
+ assertThrowsWithUrlMessage (() -> nonNull ("invalid name" ));
63
+ assertThrowsWithUrlMessage (() -> nonNull ("@invalidName" ));
64
+ assertThrowsWithListMessage (() -> nonNull ("[invalidName]" ));
65
+ assertThrowsWithNonNullMessage (() -> nonNull ("invalidName!" ));
56
66
}
57
67
58
68
@ Test
@@ -70,11 +80,31 @@ public void listsShouldNotThrowExceptionForValidName() {
70
80
71
81
@ Test
72
82
public void listsShouldThrowExceptionForInvalidName () {
73
- assertThrows (IllegalArgumentException .class , () -> list ("Invalid:Name" ));
74
- assertThrows (IllegalArgumentException .class , () -> list ("Invalid,Name" ));
75
- assertThrows (IllegalArgumentException .class , () -> list ("123InvalidName" ));
76
- assertThrows (IllegalArgumentException .class , () -> list ("invalidName-" ));
77
- assertThrows (IllegalArgumentException .class , () -> list ("invalid name" ));
78
- assertThrows (IllegalArgumentException .class , () -> list ("@invalidName" ));
83
+ assertThrowsWithUrlMessage (() -> list ("Invalid:Name" ));
84
+ assertThrowsWithUrlMessage (() -> list ("Invalid,Name" ));
85
+ assertThrowsWithUrlMessage (() -> list ("123InvalidName" ));
86
+ assertThrowsWithUrlMessage (() -> list ("invalid-Name" ));
87
+ assertThrowsWithUrlMessage (() -> list ("invalid name" ));
88
+ assertThrowsWithUrlMessage (() -> list ("@invalidName" ));
89
+ assertThrowsWithListMessage (() -> list ("[invalidName]" ));
90
+ assertThrowsWithNonNullMessage (() -> list ("invalidName!" ));
91
+ }
92
+
93
+ private void assertThrowsWithUrlMessage (Executable lambda ) {
94
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , lambda );
95
+ assertTrue (ex .getMessage ().contains (TYPE_NAME_URL ),
96
+ "Expected the '%s' message to contain '%s'" .formatted (ex .getMessage (), TYPE_NAME_URL ));
97
+ }
98
+
99
+ private void assertThrowsWithListMessage (Executable lambda ) {
100
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , lambda );
101
+ assertTrue (ex .getMessage ().contains (LIST ),
102
+ "Expected the '%s' message to contain '%s'" .formatted (ex .getMessage (), LIST ));
103
+ }
104
+
105
+ private void assertThrowsWithNonNullMessage (Executable lambda ) {
106
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , lambda );
107
+ assertTrue (ex .getMessage ().contains (NON_NULL ),
108
+ "Expected the '%s' message to contain '%s'" .formatted (ex .getMessage (), NON_NULL ));
79
109
}
80
110
}
0 commit comments