diff --git a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientService.java b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientService.java index 50eba9211bacd3a0fd87e0529147f14e3c611403..6cf43aa46500d1b908a5b427fd89339f2cacee94 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientService.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientService.java @@ -54,6 +54,7 @@ class KeycloakClientService { void updateClient(ClientRepresentation existingClient, OzgKeycloakClientSpec spec, String realm) { var clientRepresentation = mapper.update(existingClient, spec); + setProtocolMapper(clientRepresentation); remoteService.updateClient(clientRepresentation, realm); addOrUpdateClientRoles(spec, realm, existingClient.getId()); diff --git a/src/test/java/de/ozgcloud/operator/keycloak/client/ClientRepresentationTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/client/ClientRepresentationTestFactory.java index c81842fe0a9d05720ae122da0c26d96a6e8084e1..d4ac4ad4154401e3d17874c6f0e285a58f1d8dbc 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/client/ClientRepresentationTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/client/ClientRepresentationTestFactory.java @@ -27,7 +27,12 @@ import org.keycloak.representations.idm.ClientRepresentation; public class ClientRepresentationTestFactory { + public static final String ID = "42"; + public static ClientRepresentation create() { - return new ClientRepresentation(); + var clientRepresentation = new ClientRepresentation(); + clientRepresentation.setId(ID); + + return clientRepresentation; } } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientServiceTest.java b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientServiceTest.java index 33c455f991e9b7ec5b382c61c85fd7806689b6d3..bdbacdeae89ee5305f6db60cc909d37cc1afec0f 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientServiceTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientServiceTest.java @@ -68,18 +68,18 @@ class KeycloakClientServiceTest { @Test void shouldCallCreateClientMethod() { var clientSpec = OzgKeycloakClientSpecTestFactory.create(); - doNothing().when(service).createClient(eq(clientSpec), eq(TEST_NAMESPACE)); + doNothing().when(service).createClient(clientSpec, TEST_NAMESPACE); service.createOrUpdateClient(clientSpec, TEST_NAMESPACE); - verify(service).createClient(eq(clientSpec), eq(TEST_NAMESPACE)); + verify(service).createClient(clientSpec, TEST_NAMESPACE); } @Test void shouldCallUpdateClientMethod() { var clientSpec = OzgKeycloakClientSpecTestFactory.create(); var clientRepresentation = ClientRepresentationTestFactory.create(); - doNothing().when(service).updateClient(eq(clientRepresentation), eq(clientSpec), eq(TEST_NAMESPACE)); + doNothing().when(service).updateClient(clientRepresentation, clientSpec, TEST_NAMESPACE); when(keycloakGenericRemoteService.getByClientId(OzgKeycloakClientSpecTestFactory.CLIENT_ID, TEST_NAMESPACE)) .thenReturn(Optional.of(clientRepresentation)); @@ -228,23 +228,28 @@ class KeycloakClientServiceTest { } } + @DisplayName("Update client") @Nested class TestUpdateClient { - @Test - void shouldUpdateClientIfExists() { - var clientRepresentation = ClientRepresentationTestFactory.create(); + private final ClientRepresentation clientRepresentation = ClientRepresentationTestFactory.create(); + private final OzgKeycloakClientSpec client = OzgKeycloakClientSpecTestFactory.create(); + + @BeforeEach + void init() { + doNothing().when(service).setProtocolMapper(any()); when(mapper.update(any(), any())).thenReturn(clientRepresentation); + } - service.updateClient(clientRepresentation, OzgKeycloakClientSpecTestFactory.create(), TEST_NAMESPACE); + @Test + void shouldUpdateClientIfExists() { + service.updateClient(clientRepresentation, client, TEST_NAMESPACE); verify(remoteService).updateClient(clientRepresentation, TEST_NAMESPACE); } @Test void shouldCallMapper() { - var client = OzgKeycloakClientSpecTestFactory.create(); - var clientRepresentation = ClientRepresentationTestFactory.create(); service.updateClient(clientRepresentation, client, TEST_NAMESPACE); @@ -253,13 +258,16 @@ class KeycloakClientServiceTest { @Test void shouldCallAddOrUpdateClientRoles() { - var client = OzgKeycloakClientSpecTestFactory.create(); - var clientRepresentation = mock(ClientRepresentation.class); - when(clientRepresentation.getId()).thenReturn(REAL_CLIENT_ID); + service.updateClient(clientRepresentation, client, TEST_NAMESPACE); + + verify(service).addOrUpdateClientRoles(client, TEST_NAMESPACE, ClientRepresentationTestFactory.ID); + } + @Test + void shouldSetProtocolMapper() { service.updateClient(clientRepresentation, client, TEST_NAMESPACE); - verify(service).addOrUpdateClientRoles(client, TEST_NAMESPACE, REAL_CLIENT_ID); + verify(service).setProtocolMapper(clientRepresentation); } }