8
8
import static org .hamcrest .MatcherAssert .assertThat ;
9
9
import static org .hamcrest .Matchers .containsInAnyOrder ;
10
10
11
+ import java .util .HashSet ;
11
12
import java .util .Objects ;
12
13
import org .junit .jupiter .api .BeforeAll ;
13
14
import org .junit .jupiter .api .Test ;
20
21
import software .amazon .smithy .model .node .ObjectNode ;
21
22
import software .amazon .smithy .model .shapes .ShapeId ;
22
23
import software .amazon .smithy .model .traits .AnnotationTrait ;
23
- import software .amazon .smithy .model .traits .CorsTrait ;
24
- import software .amazon .smithy .model .traits .DefaultTrait ;
25
- import software .amazon .smithy .model .traits .EndpointTrait ;
26
- import software .amazon .smithy .model .traits .ErrorTrait ;
27
- import software .amazon .smithy .model .traits .EventHeaderTrait ;
28
- import software .amazon .smithy .model .traits .EventPayloadTrait ;
29
- import software .amazon .smithy .model .traits .HostLabelTrait ;
30
- import software .amazon .smithy .model .traits .HttpErrorTrait ;
31
- import software .amazon .smithy .model .traits .HttpPayloadTrait ;
32
- import software .amazon .smithy .model .traits .HttpQueryTrait ;
33
- import software .amazon .smithy .model .traits .HttpTrait ;
34
- import software .amazon .smithy .model .traits .IdempotencyTokenTrait ;
35
- import software .amazon .smithy .model .traits .JsonNameTrait ;
36
- import software .amazon .smithy .model .traits .LengthTrait ;
37
- import software .amazon .smithy .model .traits .MediaTypeTrait ;
38
- import software .amazon .smithy .model .traits .PaginatedTrait ;
39
- import software .amazon .smithy .model .traits .PatternTrait ;
40
- import software .amazon .smithy .model .traits .RangeTrait ;
41
- import software .amazon .smithy .model .traits .RequestCompressionTrait ;
42
- import software .amazon .smithy .model .traits .RequiredTrait ;
43
- import software .amazon .smithy .model .traits .RequiresLengthTrait ;
44
- import software .amazon .smithy .model .traits .RetryableTrait ;
45
- import software .amazon .smithy .model .traits .SensitiveTrait ;
46
- import software .amazon .smithy .model .traits .SparseTrait ;
47
- import software .amazon .smithy .model .traits .StreamingTrait ;
48
- import software .amazon .smithy .model .traits .TimestampFormatTrait ;
49
- import software .amazon .smithy .model .traits .UniqueItemsTrait ;
50
- import software .amazon .smithy .model .traits .XmlAttributeTrait ;
51
- import software .amazon .smithy .model .traits .XmlFlattenedTrait ;
52
- import software .amazon .smithy .model .traits .XmlNameTrait ;
53
- import software .amazon .smithy .model .traits .XmlNamespaceTrait ;
54
24
55
25
public class CodegenContextTest {
56
26
private static Model model ;
@@ -82,47 +52,19 @@ void getsCorrectRuntimeTraitsForProtocolsAndAuth() {
82
52
.build ();
83
53
plugin .execute (context );
84
54
55
+ var expected = new HashSet <>(CodeGenerationContext .PRELUDE_RUNTIME_TRAITS );
56
+ expected .add (ShapeId .from ("smithy.java.codegen#selectedTrait" ));
57
+ expected .add (ShapeId .from ("smithy.api#httpError" ));
58
+ expected .add (ShapeId .from ("smithy.api#httpPayload" ));
59
+ expected .add (ShapeId .from ("smithy.api#timestampFormat" ));
60
+ expected .add (ShapeId .from ("smithy.api#cors" ));
61
+ expected .add (ShapeId .from ("smithy.api#http" ));
62
+ expected .add (ShapeId .from ("smithy.api#httpQuery" ));
63
+ expected .add (ShapeId .from ("smithy.api#endpoint" ));
64
+
85
65
assertThat (
86
66
plugin .capturedContext .runtimeTraits (),
87
- containsInAnyOrder (
88
- // Prelude validation traits
89
- LengthTrait .ID ,
90
- PatternTrait .ID ,
91
- RangeTrait .ID ,
92
- RequiredTrait .ID ,
93
- SensitiveTrait .ID ,
94
- SparseTrait .ID ,
95
- UniqueItemsTrait .ID ,
96
- RequiresLengthTrait .ID ,
97
- ErrorTrait .ID ,
98
- DefaultTrait .ID ,
99
- // Base Prelude Protocol traits
100
- JsonNameTrait .ID ,
101
- TimestampFormatTrait .ID ,
102
- MediaTypeTrait .ID ,
103
- XmlNameTrait .ID ,
104
- XmlFlattenedTrait .ID ,
105
- XmlAttributeTrait .ID ,
106
- XmlNamespaceTrait .ID ,
107
- EventHeaderTrait .ID ,
108
- EventPayloadTrait .ID ,
109
- HostLabelTrait .ID ,
110
- EndpointTrait .ID ,
111
- // Protocol Traits
112
- CorsTrait .ID ,
113
- HttpTrait .ID ,
114
- // Auth traits
115
- HttpQueryTrait .ID ,
116
- HttpPayloadTrait .ID ,
117
- // Prelude behavior traits
118
- PaginatedTrait .ID ,
119
- IdempotencyTokenTrait .ID ,
120
- RetryableTrait .ID ,
121
- RequestCompressionTrait .ID ,
122
- StreamingTrait .ID ,
123
- // Added by settings
124
- HttpErrorTrait .ID ,
125
- ShapeId .from ("smithy.java.codegen#selectedTrait" )));
67
+ containsInAnyOrder (expected .toArray ()));
126
68
}
127
69
128
70
@ Test
@@ -141,36 +83,7 @@ void getsCorrectTraitsWithNoProtocolOrAuth() {
141
83
142
84
assertThat (
143
85
plugin .capturedContext .runtimeTraits (),
144
- containsInAnyOrder (
145
- // Prelude Validation Traits
146
- LengthTrait .ID ,
147
- PatternTrait .ID ,
148
- RangeTrait .ID ,
149
- RequiredTrait .ID ,
150
- SensitiveTrait .ID ,
151
- SparseTrait .ID ,
152
- UniqueItemsTrait .ID ,
153
- RequiresLengthTrait .ID ,
154
- ErrorTrait .ID ,
155
- DefaultTrait .ID ,
156
- // Base Prelude Protocol traits
157
- JsonNameTrait .ID ,
158
- TimestampFormatTrait .ID ,
159
- MediaTypeTrait .ID ,
160
- XmlNameTrait .ID ,
161
- XmlFlattenedTrait .ID ,
162
- XmlAttributeTrait .ID ,
163
- XmlNamespaceTrait .ID ,
164
- EventHeaderTrait .ID ,
165
- EventPayloadTrait .ID ,
166
- HostLabelTrait .ID ,
167
- EndpointTrait .ID ,
168
- // Prelude behavior traits
169
- PaginatedTrait .ID ,
170
- IdempotencyTokenTrait .ID ,
171
- RetryableTrait .ID ,
172
- RequestCompressionTrait .ID ,
173
- StreamingTrait .ID ));
86
+ containsInAnyOrder (CodeGenerationContext .PRELUDE_RUNTIME_TRAITS .toArray ()));
174
87
}
175
88
176
89
public static class SelectedTrait extends AnnotationTrait {
0 commit comments