1616
1717package org .springframework .web .service .registry ;
1818
19- import java .util .Arrays ;
20- import java .util .LinkedHashMap ;
21- import java .util .LinkedHashSet ;
2219import java .util .Map ;
23- import java .util .Set ;
2420import java .util .function .BiConsumer ;
2521
2622import org .junit .jupiter .api .Test ;
4339import static org .assertj .core .api .Assertions .assertThat ;
4440
4541/**
46- * Tests for {@link AnnotationHttpServiceRegistrar }.
42+ * Tests for {@link ImportHttpServicesRegistrar }.
4743 *
4844 * @author Rossen Stoyanchev
4945 * @author Stephane Nicoll
5046 */
51- public class AnnotationHttpServiceRegistrarTests {
47+ public class ImportHttpServicesRegistrarTests {
5248
5349 private static final String ECHO_GROUP = "echo" ;
5450
@@ -57,13 +53,13 @@ public class AnnotationHttpServiceRegistrarTests {
5753
5854 private final TestGroupRegistry groupRegistry = new TestGroupRegistry ();
5955
60- private final TestAnnotationHttpServiceRegistrar registrar = new TestAnnotationHttpServiceRegistrar ();
56+ private final ImportHttpServicesRegistrar registrar = new ImportHttpServicesRegistrar ();
6157
6258
6359 @ Test
6460 void basicListing () {
6561 doRegister (ListingConfig .class );
66- assertGroups (StubGroup .ofListing (ECHO_GROUP , EchoA .class , EchoB .class ));
62+ assertGroups (TestGroup .ofListing (ECHO_GROUP , EchoA .class , EchoB .class ));
6763 }
6864
6965 @ Test
@@ -83,8 +79,8 @@ void basicListingWithAot() {
8379 void basicScan () {
8480 doRegister (ScanConfig .class );
8581 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 ));
8884 }
8985
9086 @ Test
@@ -105,8 +101,8 @@ void basicScanWithAot() {
105101 void clientType () {
106102 doRegister (ClientTypeConfig .class );
107103 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 ));
110106 }
111107
112108 private void doRegister (Class <?> configClass ) {
@@ -133,11 +129,11 @@ private GenericApplicationContext toFreshApplicationContext(
133129 return freshApplicationContext ;
134130 }
135131
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 ();
138134 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 ());
141137 assertThat (actual .httpServiceTypes ()).isEqualTo (expected .httpServiceTypes ());
142138 assertThat (actual .clientType ()).isEqualTo (expected .clientType ());
143139 assertThat (actual .packageNames ()).isEqualTo (expected .packageNames ());
@@ -159,86 +155,4 @@ static class ScanConfig {
159155 @ ImportHttpServices (clientType = ClientType .WEB_CLIENT , group = GREETING_GROUP , types = { GreetingA .class })
160156 static class ClientTypeConfig {
161157 }
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-
244158}
0 commit comments