16
16
17
17
package org .springframework .web .service .registry ;
18
18
19
- import java .util .Arrays ;
20
- import java .util .LinkedHashMap ;
21
- import java .util .LinkedHashSet ;
22
19
import java .util .Map ;
23
- import java .util .Set ;
24
20
import java .util .function .BiConsumer ;
25
21
26
22
import org .junit .jupiter .api .Test ;
43
39
import static org .assertj .core .api .Assertions .assertThat ;
44
40
45
41
/**
46
- * Tests for {@link AnnotationHttpServiceRegistrar }.
42
+ * Tests for {@link ImportHttpServicesRegistrar }.
47
43
*
48
44
* @author Rossen Stoyanchev
49
45
* @author Stephane Nicoll
50
46
*/
51
- public class AnnotationHttpServiceRegistrarTests {
47
+ public class ImportHttpServicesRegistrarTests {
52
48
53
49
private static final String ECHO_GROUP = "echo" ;
54
50
@@ -57,13 +53,13 @@ public class AnnotationHttpServiceRegistrarTests {
57
53
58
54
private final TestGroupRegistry groupRegistry = new TestGroupRegistry ();
59
55
60
- private final TestAnnotationHttpServiceRegistrar registrar = new TestAnnotationHttpServiceRegistrar ();
56
+ private final ImportHttpServicesRegistrar registrar = new ImportHttpServicesRegistrar ();
61
57
62
58
63
59
@ Test
64
60
void basicListing () {
65
61
doRegister (ListingConfig .class );
66
- assertGroups (StubGroup .ofListing (ECHO_GROUP , EchoA .class , EchoB .class ));
62
+ assertGroups (TestGroup .ofListing (ECHO_GROUP , EchoA .class , EchoB .class ));
67
63
}
68
64
69
65
@ Test
@@ -83,8 +79,8 @@ void basicListingWithAot() {
83
79
void basicScan () {
84
80
doRegister (ScanConfig .class );
85
81
assertGroups (
86
- StubGroup .ofPackageClasses (ECHO_GROUP , EchoA .class ),
87
- StubGroup .ofPackageClasses (GREETING_GROUP , GreetingA .class ));
82
+ TestGroup .ofPackageClasses (ECHO_GROUP , EchoA .class ),
83
+ TestGroup .ofPackageClasses (GREETING_GROUP , GreetingA .class ));
88
84
}
89
85
90
86
@ Test
@@ -105,8 +101,8 @@ void basicScanWithAot() {
105
101
void clientType () {
106
102
doRegister (ClientTypeConfig .class );
107
103
assertGroups (
108
- StubGroup .ofListing (ECHO_GROUP , ClientType .WEB_CLIENT , EchoA .class ),
109
- StubGroup .ofListing (GREETING_GROUP , ClientType .WEB_CLIENT , GreetingA .class ));
104
+ TestGroup .ofListing (ECHO_GROUP , ClientType .WEB_CLIENT , EchoA .class ),
105
+ TestGroup .ofListing (GREETING_GROUP , ClientType .WEB_CLIENT , GreetingA .class ));
110
106
}
111
107
112
108
private void doRegister (Class <?> configClass ) {
@@ -133,11 +129,11 @@ private GenericApplicationContext toFreshApplicationContext(
133
129
return freshApplicationContext ;
134
130
}
135
131
136
- private void assertGroups (StubGroup ... expectedGroups ) {
137
- Map <String , StubGroup > groupMap = this .groupRegistry .groupMap ();
132
+ private void assertGroups (TestGroup ... expectedGroups ) {
133
+ Map <String , TestGroup > groupMap = this .groupRegistry .groupMap ();
138
134
assertThat (groupMap .size ()).isEqualTo (expectedGroups .length );
139
- for (StubGroup expected : expectedGroups ) {
140
- StubGroup actual = groupMap .get (expected .name ());
135
+ for (TestGroup expected : expectedGroups ) {
136
+ TestGroup actual = groupMap .get (expected .name ());
141
137
assertThat (actual .httpServiceTypes ()).isEqualTo (expected .httpServiceTypes ());
142
138
assertThat (actual .clientType ()).isEqualTo (expected .clientType ());
143
139
assertThat (actual .packageNames ()).isEqualTo (expected .packageNames ());
@@ -159,86 +155,4 @@ static class ScanConfig {
159
155
@ ImportHttpServices (clientType = ClientType .WEB_CLIENT , group = GREETING_GROUP , types = { GreetingA .class })
160
156
static class ClientTypeConfig {
161
157
}
162
-
163
-
164
- private static class TestAnnotationHttpServiceRegistrar extends AnnotationHttpServiceRegistrar {
165
-
166
- @ Override
167
- public void registerHttpServices (GroupRegistry registry , AnnotationMetadata metadata ) {
168
- super .registerHttpServices (registry , metadata );
169
- }
170
- }
171
-
172
-
173
- private static class TestGroupRegistry implements AbstractHttpServiceRegistrar .GroupRegistry {
174
-
175
- private final Map <String , StubGroup > groupMap = new LinkedHashMap <>();
176
-
177
- public Map <String , StubGroup > groupMap () {
178
- return this .groupMap ;
179
- }
180
-
181
- @ Override
182
- public GroupSpec forGroup (String name , ClientType clientType ) {
183
- return new TestGroupSpec (this .groupMap , name , clientType );
184
- }
185
-
186
-
187
- private record TestGroupSpec (Map <String , StubGroup > groupMap , String groupName ,
188
- ClientType clientType ) implements GroupSpec {
189
-
190
- @ Override
191
- public GroupSpec register (Class <?>... serviceTypes ) {
192
- getOrCreateGroup ().httpServiceTypes ().addAll (Arrays .asList (serviceTypes ));
193
- return this ;
194
- }
195
-
196
- @ Override
197
- public GroupSpec detectInBasePackages (Class <?>... packageClasses ) {
198
- getOrCreateGroup ().packageClasses ().addAll (Arrays .asList (packageClasses ));
199
- return this ;
200
- }
201
-
202
- @ Override
203
- public GroupSpec detectInBasePackages (String ... packageNames ) {
204
- getOrCreateGroup ().packageNames ().addAll (Arrays .asList (packageNames ));
205
- return this ;
206
- }
207
-
208
- private StubGroup getOrCreateGroup () {
209
- return this .groupMap .computeIfAbsent (this .groupName , name -> new StubGroup (name , this .clientType ));
210
- }
211
- }
212
- }
213
-
214
-
215
- private record StubGroup (
216
- String name , ClientType clientType , Set <Class <?>> httpServiceTypes ,
217
- Set <Class <?>> packageClasses , Set <String > packageNames ) implements HttpServiceGroup {
218
-
219
- StubGroup (String name , ClientType clientType ) {
220
- this (name , clientType , new LinkedHashSet <>(), new LinkedHashSet <>(), new LinkedHashSet <>());
221
- }
222
-
223
- public static StubGroup ofListing (String name , Class <?>... httpServiceTypes ) {
224
- return ofListing (name , ClientType .UNSPECIFIED , httpServiceTypes );
225
- }
226
-
227
- public static StubGroup ofListing (String name , ClientType clientType , Class <?>... httpServiceTypes ) {
228
- StubGroup group = new StubGroup (name , clientType );
229
- group .httpServiceTypes ().addAll (Arrays .asList (httpServiceTypes ));
230
- return group ;
231
- }
232
-
233
- public static StubGroup ofPackageClasses (String name , Class <?>... packageClasses ) {
234
- return ofPackageClasses (name , ClientType .UNSPECIFIED , packageClasses );
235
- }
236
-
237
- public static StubGroup ofPackageClasses (String name , ClientType clientType , Class <?>... packageClasses ) {
238
- StubGroup group = new StubGroup (name , clientType );
239
- group .packageClasses ().addAll (Arrays .asList (packageClasses ));
240
- return group ;
241
- }
242
- }
243
-
244
158
}
0 commit comments