@@ -77,6 +77,7 @@ void testHandleCreate() {
7777 var entityConfiguration = new EntityConfiguration ();
7878 entityConfiguration .setProvider ("test" );
7979 var providerConfiguration = new ProviderConfiguration ();
80+ providerConfiguration .setType ("test-type" );
8081 var provider = Mockito .mock (ProviderPlugin .class );
8182 var request = Mockito .mock (HttpServletRequest .class );
8283 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -85,7 +86,7 @@ void testHandleCreate() {
8586 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
8687 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
8788 .thenReturn (Optional .of (providerConfiguration ));
88- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
89+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
8990 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
9091 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
9192 Mockito .when (provider .create (Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (null );
@@ -119,6 +120,7 @@ void testHandleUpdate() {
119120 var entityConfiguration = new EntityConfiguration ();
120121 entityConfiguration .setProvider ("test" );
121122 var providerConfiguration = new ProviderConfiguration ();
123+ providerConfiguration .setType ("test-type" );
122124 var provider = Mockito .mock (ProviderPlugin .class );
123125 var request = Mockito .mock (HttpServletRequest .class );
124126 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -127,7 +129,7 @@ void testHandleUpdate() {
127129 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
128130 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
129131 .thenReturn (Optional .of (providerConfiguration ));
130- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
132+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
131133 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
132134 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
133135 Mockito .when (provider .update (Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (null );
@@ -163,6 +165,7 @@ void testHandlePatch() {
163165 var entityConfiguration = new EntityConfiguration ();
164166 entityConfiguration .setProvider ("test" );
165167 var providerConfiguration = new ProviderConfiguration ();
168+ providerConfiguration .setType ("test-type" );
166169 var provider = Mockito .mock (ProviderPlugin .class );
167170 var request = Mockito .mock (HttpServletRequest .class );
168171 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -171,7 +174,7 @@ void testHandlePatch() {
171174 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
172175 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
173176 .thenReturn (Optional .of (providerConfiguration ));
174- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
177+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
175178 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
176179 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
177180 Mockito .when (provider .patch (Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (null );
@@ -207,6 +210,7 @@ void testHandleDelete() {
207210 var entityConfiguration = new EntityConfiguration ();
208211 entityConfiguration .setProvider ("test" );
209212 var providerConfiguration = new ProviderConfiguration ();
213+ providerConfiguration .setType ("test-type" );
210214 var provider = Mockito .mock (ProviderPlugin .class );
211215 var request = Mockito .mock (HttpServletRequest .class );
212216 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -215,7 +219,7 @@ void testHandleDelete() {
215219 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
216220 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
217221 .thenReturn (Optional .of (providerConfiguration ));
218- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
222+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
219223 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
220224 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
221225 Mockito .when (provider .delete (Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (true );
@@ -251,6 +255,7 @@ void testHandleFindById() {
251255 var entityConfiguration = new EntityConfiguration ();
252256 entityConfiguration .setProvider ("test" );
253257 var providerConfiguration = new ProviderConfiguration ();
258+ providerConfiguration .setType ("test-type" );
254259 var provider = Mockito .mock (ProviderPlugin .class );
255260 var request = Mockito .mock (HttpServletRequest .class );
256261 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -259,7 +264,7 @@ void testHandleFindById() {
259264 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
260265 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
261266 .thenReturn (Optional .of (providerConfiguration ));
262- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
267+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
263268 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
264269 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
265270 Mockito .when (provider .findById (Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (null );
@@ -295,6 +300,7 @@ void testHandleFindAll() {
295300 var entityConfiguration = new EntityConfiguration ();
296301 entityConfiguration .setProvider ("test" );
297302 var providerConfiguration = new ProviderConfiguration ();
303+ providerConfiguration .setType ("test-type" );
298304 var provider = Mockito .mock (ProviderPlugin .class );
299305 var request = Mockito .mock (HttpServletRequest .class );
300306 var authPlugin = Mockito .mock (AllowAllAuthorizationPlugin .class );
@@ -303,7 +309,7 @@ void testHandleFindAll() {
303309 Mockito .when (configurationService .getEntityConfiguration (Mockito .anyString ())).thenReturn (Optional .of (entityConfiguration ));
304310 Mockito .when (configurationService .getProviderConfiguration (Mockito .any ()))
305311 .thenReturn (Optional .of (providerConfiguration ));
306- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .of (provider ));
312+ Mockito .when (providerFactory .getProviderByType (Mockito .anyString ())).thenReturn (Optional .of (provider ));
307313 Mockito .doNothing ().when (taskEngine ).execute (Mockito .any (), Mockito .any (), Mockito .any ());
308314 Mockito .doNothing ().when (validationEngine ).validate (Mockito .any (), Mockito .any ());
309315 Mockito .when (provider .findAll (Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any (), Mockito .any ())).thenReturn (null );
@@ -353,20 +359,52 @@ void testUpdateEntityConfiguration() {
353359 @ Test
354360 @ DisplayName ("test getProvider: should throw exception without provider" )
355361 void testGetProvider () {
356- Mockito .when (providerFactory .getProviderByName (Mockito .anyString ())).thenReturn (Optional .empty ());
362+ var providerConfiguration = new ProviderConfiguration ();
363+ providerConfiguration .setType ("http" );
364+
365+ Mockito .when (configurationService .getProviderConfiguration ("my-provider" ))
366+ .thenReturn (Optional .of (providerConfiguration ));
367+ Mockito .when (providerFactory .getProviderByType ("http" )).thenReturn (Optional .empty ());
357368
358369 var entityConfiguration = new EntityConfiguration ();
359- entityConfiguration .setProvider ("provider" );
370+ entityConfiguration .setProvider ("my- provider" );
360371 entityConfiguration .setName ("name" );
361372 var entity = new DynamicEntity ();
362373 entity .setConfiguration (entityConfiguration );
363374
364375 ApiException ex = assertThrows (ApiException .class , () -> service .getProvider (entity ));
365376 assertEquals ("error.provider.unknown" , ex .getError ().key ());
366- assertEquals (Map .of ("entity" , "name" , "provider" , "provider" ), ex .getError ().context ());
377+ assertEquals (Map .of ("entity" , "name" , "provider" , "my- provider" ), ex .getError ().context ());
367378 assertEquals (500 , ex .getStatusCode ());
368379 }
369380
381+ @ Test
382+ @ DisplayName ("test getProvider: should resolve provider by type not by name" )
383+ void testGetProviderShouldResolveByType () {
384+ var providerConfiguration = new ProviderConfiguration ();
385+ providerConfiguration .setName ("my-http-provider" );
386+ providerConfiguration .setType ("http" );
387+
388+ var provider = Mockito .mock (ProviderPlugin .class );
389+
390+ Mockito .when (configurationService .getProviderConfiguration ("my-http-provider" ))
391+ .thenReturn (Optional .of (providerConfiguration ));
392+ Mockito .when (providerFactory .getProviderByType ("http" )).thenReturn (Optional .of (provider ));
393+
394+ var entityConfiguration = new EntityConfiguration ();
395+ entityConfiguration .setProvider ("my-http-provider" );
396+ entityConfiguration .setName ("users" );
397+ var entity = new DynamicEntity ();
398+ entity .setConfiguration (entityConfiguration );
399+
400+ var result = service .getProvider (entity );
401+
402+ assertEquals (provider , result );
403+ // Verify that getProviderByType was called with the TYPE, not the provider NAME
404+ Mockito .verify (providerFactory ).getProviderByType ("http" );
405+ Mockito .verify (providerFactory , Mockito .never ()).getProviderByType ("my-http-provider" );
406+ }
407+
370408 @ Test
371409 @ DisplayName ("test getProviderConfiguration: should throw exception without configuration" )
372410 void testGetProviderConfiguration () {
0 commit comments