diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
index 76bdd86073f0044629be76d47b6327bab33f7407..18f9b5ed3d372ec61b2ce7c0f90c65084c742a72 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
@@ -35,21 +35,23 @@ import org.mapstruct.MappingTarget;
 import org.mapstruct.Named;
 import org.mapstruct.ReportingPolicy;
 
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer;
+
 @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, unmappedSourcePolicy = ReportingPolicy.IGNORE)
 interface KeycloakRealmMapper {
 
 	public static final String ACTION_TOKEN_GENERATED_BY_USER_LIFE_SPAN = "900";
 	public static final String PASSWORD_POLICY = "upperCase(1) and lowerCase(1) and length(8) and notUsername";
-	public static final String  DEFAULT_LOCAL = "de";
+	public static final String  DEFAULT_LOCALE = "de";
 	public static final String RESET_PASSWORD_ALLOWED = "true";
 	public static final String ENABLED = "true";
 	public static final String INTERNATIONALIZATION_ENABLED = "true";
 
-	@Mapping(target = "displayName", source = "displayName")
+	
 	@Mapping(target = "enabled", constant = ENABLED)
 	@Mapping(target = "resetPasswordAllowed", constant = RESET_PASSWORD_ALLOWED)
 	@Mapping(target = "supportedLocales", source = ".", qualifiedByName = "supportedLocales")
-	@Mapping(target = "defaultLocale", constant = DEFAULT_LOCAL)
+	@Mapping(target = "defaultLocale", constant = DEFAULT_LOCALE)
 	@Mapping(target = "internationalizationEnabled", constant = INTERNATIONALIZATION_ENABLED)
 	@Mapping(target = "passwordPolicy", constant = PASSWORD_POLICY)
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = ACTION_TOKEN_GENERATED_BY_USER_LIFE_SPAN)
@@ -57,11 +59,11 @@ interface KeycloakRealmMapper {
 	@Mapping(target = "roles.realm", source = "realmRoles")
 	public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm);
 
-	@Mapping(target = "displayName", source = "displayName")
+
 	@Mapping(target = "enabled", constant = ENABLED)
 	@Mapping(target = "resetPasswordAllowed", constant = RESET_PASSWORD_ALLOWED)
 	@Mapping(target = "supportedLocales", source = ".", qualifiedByName = "supportedLocales")
-	@Mapping(target = "defaultLocale", constant = DEFAULT_LOCAL)
+	@Mapping(target = "defaultLocale", constant = DEFAULT_LOCALE)
 	@Mapping(target = "internationalizationEnabled", constant = INTERNATIONALIZATION_ENABLED)
 	@Mapping(target = "passwordPolicy", constant = PASSWORD_POLICY)
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = ACTION_TOKEN_GENERATED_BY_USER_LIFE_SPAN)
@@ -82,14 +84,14 @@ interface KeycloakRealmMapper {
 
 		Map<String, String> smtpServer = new HashMap<>();
 		if (server != null) {
-			smtpServer.put("host", server.getHost());
-			smtpServer.put("port", server.getPort());
-			smtpServer.put("user", server.getUser());
-			smtpServer.put("password", server.getPassword());
-			smtpServer.put("starttls", server.getStarttls());
-			smtpServer.put("auth", server.getAuth());
-			smtpServer.put("from", server.getFrom());
-			smtpServer.put("fromDisplayName", server.getFromDisplayName());
+			smtpServer.put(KeycloakRealmSMTPServer.HOST_FIELD, server.getHost());
+			smtpServer.put(KeycloakRealmSMTPServer.PORT_FIELD, server.getPort());
+			smtpServer.put(KeycloakRealmSMTPServer.USER_FIELD, server.getUser());
+			smtpServer.put(KeycloakRealmSMTPServer.PASSWORD_FIELD, server.getPassword());
+			smtpServer.put(KeycloakRealmSMTPServer.STARTTLS_FIELD, server.getStarttls());
+			smtpServer.put(KeycloakRealmSMTPServer.AUTH_FIELD, server.getAuth());
+			smtpServer.put(KeycloakRealmSMTPServer.FROM_FIELD, server.getFrom());
+			smtpServer.put(KeycloakRealmSMTPServer.FROM_DISPLAY_NAME_FIELD, server.getFromDisplayName());
 		}
 		return smtpServer;
 
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
index e3677e8e1c55509af87bf796eafbe121e5fa4e19..045ea76c487b592ea2bfd1914d4d1dfffd366272 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
@@ -51,7 +51,7 @@ class KeycloakRealmService {
 				.ifPresent(remoteService::createRealm);
 	}
 
-	void createOrUpdateRealm(OzgCloudKeycloakRealmSpec realm, String realmName) {
+	public void createOrUpdateRealm(OzgCloudKeycloakRealmSpec realm, String realmName) {
 		keycloakGenericRemoteService.getRealmRepresentation(realmName)
 				.ifPresentOrElse(existingRealm -> updateRealm(existingRealm, realm),
 						() -> createRealm(realm, realmName));
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
index e68dd6ba3e90b8dc25587b0be191c95e02c3452f..3705bff104ae2ff1e7eec5845c80c7bc37b91d99 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
@@ -57,6 +57,22 @@ class OzgCloudKeycloakRealmSpec {
 	@AllArgsConstructor
 	static class KeycloakRealmSMTPServer {
 
+		public static final String USER_FIELD = "user";
+
+		public static final String PASSWORD_FIELD = "password";
+
+		public static final String HOST_FIELD = "host";
+
+		public static final String PORT_FIELD= "port";
+
+		public static final String STARTTLS_FIELD = "starttls"; 
+
+		public static final String AUTH_FIELD = "auth";
+
+		public static final String FROM_FIELD = "from";
+
+		public static final String FROM_DISPLAY_NAME_FIELD = "fromDisplayName";
+
 		private String user;
 		private String password;
 
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
index e2de78c1cdbf9fbd5f34933ec95bb28899b45572..d3e01f232f460e9740128924f24880b4fda517e8 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
@@ -31,87 +31,95 @@ import org.keycloak.representations.idm.RealmRepresentation;
 import org.mapstruct.factory.Mappers;
 import org.mockito.Spy;
 
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer;
+
 class KeycloakRealmMapperTest {
 
 	@Spy
 	private final KeycloakRealmMapper mapper = Mappers.getMapper(KeycloakRealmMapper.class);
 
+
+	private RealmRepresentation mapRealm() {
+        return mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+
+	}
+
 	@Test
 	void shouldMapDisplayName() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getDisplayName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.DISPLAY_NAME);
 	}
 
 	@Test
 	void shouldBeEnabled() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.isEnabled()).isTrue();
 	}
 
 	@Test
 	void shouldBeResetPasswordAllowed() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.isResetPasswordAllowed()).isTrue();
 	}
 
 	@Test
 	void shouldBeSupportedLocaleDe() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getSupportedLocales()).containsExactly("de");
 	}
 
 	@Test
 	void shouldBeDefaultLocaleDe() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getDefaultLocale()).isEqualTo("de");
 	}
 
 	@Test
 	void shouldBeInternationalizationEnabled() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.isInternationalizationEnabled()).isTrue();
 	}
 
 	@Test
 	void checkPasswordPolicy() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername");
 	}
 
 	@Test
 	void shouldSetActionTokenGeneratedByUserLifespan() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
 	}
 
 	@Test
 	void shouldMapSmtpServer() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getSmtpServer()).hasSize(8);
 	}
 
 	@Test
 	void shouldContainSmtpServerKeysValues() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getSmtpServer())
-				.containsEntry("user", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
-				.containsEntry("password", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
-				.containsEntry("host", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
-				.containsEntry("port", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
-				.containsEntry("starttls", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
-				.containsEntry("auth", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
-				.containsEntry("from", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
-				.containsEntry("fromDisplayName", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
+				.containsEntry(KeycloakRealmSMTPServer.USER_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
+				.containsEntry(KeycloakRealmSMTPServer.PASSWORD_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
+				.containsEntry(KeycloakRealmSMTPServer.HOST_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
+				.containsEntry(KeycloakRealmSMTPServer.PORT_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
+				.containsEntry(KeycloakRealmSMTPServer.STARTTLS_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
+				.containsEntry(KeycloakRealmSMTPServer.AUTH_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
+				.containsEntry(KeycloakRealmSMTPServer.FROM_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
+				.containsEntry(KeycloakRealmSMTPServer.FROM_DISPLAY_NAME_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
 	}
 
 	@Test
@@ -123,14 +131,14 @@ class KeycloakRealmMapperTest {
 
 	@Test
 	void shouldMapRealmRoles() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 
 		assertThat(mapped.getRoles().getRealm()).hasSize(2);
 	}
 
 	@Test
 	void shouldContainRealmRolesValues() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mapped = mapRealm();
 		var mappedRealmRoles = mapped.getRoles();
 
 		assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
@@ -142,99 +150,99 @@ class KeycloakRealmMapperTest {
 
 		@Test
 		void shouldMapDisplayName() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getDisplayName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.DISPLAY_NAME);
 		}
 
 		@Test
 		void shouldBeEnabled() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.isEnabled()).isTrue();
 		}
 
 		@Test
 		void shouldBeResetPasswordAllowed() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.isResetPasswordAllowed()).isTrue();
 		}
 
 		@Test
 		void shouldBeSupportedLocaleDe() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getSupportedLocales()).containsExactly("de");
 		}
 
 		@Test
 		void shouldBeDefaultLocaleDe() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getDefaultLocale()).isEqualTo("de");
 		}
 
 		@Test
 		void shouldBeInternationalizationEnabled() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.isInternationalizationEnabled()).isTrue();
 		}
 
 		@Test
 		void checkPasswordPolicy() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername");
 		}
 
 		@Test
 		void shouldSetActionTokenGeneratedByUserLifespan() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
 		}
 
 		@Test
 		void shouldMapSmtpServer() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getSmtpServer()).hasSize(8);
 		}
 
 		@Test
 		void shouldContainSmtpServerKeysValues() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getSmtpServer())
-					.containsEntry("user", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
-					.containsEntry("password", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
-					.containsEntry("host", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
-					.containsEntry("port", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
-					.containsEntry("starttls", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
-					.containsEntry("auth", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
-					.containsEntry("from", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
-					.containsEntry("fromDisplayName", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
+					.containsEntry(KeycloakRealmSMTPServer.USER_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
+					.containsEntry(KeycloakRealmSMTPServer.PASSWORD_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
+					.containsEntry(KeycloakRealmSMTPServer.HOST_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
+					.containsEntry(KeycloakRealmSMTPServer.PORT_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
+					.containsEntry(KeycloakRealmSMTPServer.STARTTLS_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
+					.containsEntry(KeycloakRealmSMTPServer.AUTH_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
+					.containsEntry(KeycloakRealmSMTPServer.FROM_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
+					.containsEntry(KeycloakRealmSMTPServer.FROM_DISPLAY_NAME_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
 		}
 
 		@Test
 		void shouldMapWhenSmtpServerIsNull() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.createBuilder().smtpServer(null).build());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.createBuilder().smtpServer(null).build());
 
 			assertThat(mapped.getSmtpServer()).isEmpty();
 		}
 
 		@Test
 		void shouldMapRealmRoles() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 
 			assertThat(mapped.getRoles().getRealm()).hasSize(2);
 		}
 
 		@Test
 		void shouldContainRealmRolesValues() {
-			var mapped = mapper.update(new RealmRepresentation(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
 			var mappedRealmRoles = mapped.getRoles();
 
 			assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteServiceTest.java
index de184ed14a5c5daff65afb5370b5645bb851a680..0b20c33a139e924d42890b07d21cd3a962f99097 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteServiceTest.java
@@ -23,10 +23,10 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import static org.mockito.Mockito.*;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.ArgumentMatchers.any;
 
 import java.util.List;
 import java.util.Optional;
@@ -70,8 +70,8 @@ class KeycloakRealmRemoteServiceTest {
 	@Mock
 	private RoleRepresentation roleRepresentation;
 
-	private static final String REALM_NAME = "TestRealmName";
-	private static final String ROLE_NAME = "RoleName";
+	private static final String REALM_NAME = RealmRepresentationTestFactory.NAME;
+	private static final String ROLE_NAME = OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1;
 
 	@Nested
 	class TestCreateRealm {
@@ -91,6 +91,24 @@ class KeycloakRealmRemoteServiceTest {
 		}
 	}
 
+	@Nested
+	class TestUpdateRealm {
+
+		@BeforeEach
+		void init() {
+			when(keycloak.realm(REALM_NAME)).thenReturn(realmResource);
+		}
+
+		@Test
+		void shouldCallUpdateRealm() {
+			var realm = RealmRepresentationTestFactory.create();
+
+			remoteService.updateRealm(realm);
+
+			verify(realmResource).update(realm);
+		}
+	}
+	
 	@Nested
 	class TestDeleteRealm {
 
@@ -108,16 +126,16 @@ class KeycloakRealmRemoteServiceTest {
 	class TestRealmRoles {
 
 		@Nested
-		class TestAddClientRole {
+		class TestAddRealmRole {
 
 			@BeforeEach
 			void init() {
-				when(keycloak.realm(REALM_NAME)).thenReturn(realmResource);
+				when(keycloak.realm(any())).thenReturn(realmResource);
 				when(realmResource.roles()).thenReturn(rolesResource);
 			}
 
 			@Test
-			void shouldAddClientRole() {
+			void shouldAddRealmRole() {
 				remoteService.addRealmRole(roleRepresentation, REALM_NAME);
 
 				verify(rolesResource).create(roleRepresentation);
@@ -132,7 +150,6 @@ class KeycloakRealmRemoteServiceTest {
 				when(keycloak.realm(REALM_NAME)).thenReturn(realmResource);
 				when(realmResource.roles()).thenReturn(rolesResource);
 				when(rolesResource.get(ROLE_NAME)).thenReturn(roleResource);
-
 				when(roleRepresentation.getName()).thenReturn(ROLE_NAME);
 
 			}
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
index c938b5e873e08b0cdb618aa905373fbfc0d22680..1f72d6301529103cbd4289f6d357478a5a5351e9 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
@@ -38,11 +38,15 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 
 import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.RealmRole;
 
 class KeycloakRealmServiceTest {
 
 	private static final OzgCloudKeycloakRealmSpec REALM = OzgCloudKeycloakRealmSpecTestFactory.create();
 	private static final String REALM_NAME = "TestRealmName";
+	private static final String ROLE_NAME = OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1;
+	private static final RealmRole ROLE = OzgCloudKeycloakRealmSpecTestFactory.ROLE1;
+
 
 	@Spy
 	@InjectMocks
@@ -115,6 +119,53 @@ class KeycloakRealmServiceTest {
 			verify(mapper).update(realmRepresentation, REALM);
 		}
 
+		@Test
+		void shouldCallAddOrUpdateRealmRoles() {
+
+			service.updateRealm(realmRepresentation, REALM);
+
+			verify(service).addOrUpdateRealmRoles(REALM, realmRepresentation.getRealm());
+		}
+
+	}
+
+	
+
+	@DisplayName("Add or Update Realm Roles")
+	@Nested
+	class TestAddOrUpdateRealmRoles {
+
+		@Test
+		void shouldCallRemoteServiceGetRole() {
+
+			service.addOrUpdateRealmRoles(REALM, REALM_NAME);
+
+			verify(remoteService).getRealmRole(ROLE_NAME, REALM_NAME);
+		}
+
+		@Test
+		void shouldCreateRole() {
+			when(remoteService.getRealmRole(ROLE_NAME, REALM_NAME)).thenReturn(Optional.empty());
+			var roleRepresentation = RealmRoleRepresentationTestFactory.create();
+			when(mapper.map(ROLE)).thenReturn(roleRepresentation);
+
+			service.addOrUpdateRealmRoles(REALM, REALM_NAME);
+
+			verify(remoteService).addRealmRole(roleRepresentation, REALM_NAME);
+		}
+
+		@Test
+		void shouldUpdateRole() {
+			var roleRepresentation = RealmRoleRepresentationTestFactory.create();
+			when(mapper.map(ROLE)).thenReturn(roleRepresentation);
+			when(remoteService.getRealmRole(ROLE_NAME, REALM_NAME)).thenReturn(Optional.of(roleRepresentation));
+			
+
+			service.addOrUpdateRealmRoles(REALM, REALM_NAME);
+
+			verify(remoteService).updateRealmRole(roleRepresentation, REALM_NAME);
+		}
+
 	}
 
 	@Nested
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/RealmRoleRepresentationTestFactory.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/RealmRoleRepresentationTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..288c07f76299e58b21bf0c4310e5ebd34aba6b2d
--- /dev/null
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/RealmRoleRepresentationTestFactory.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.operator.keycloak.realm;
+
+import org.keycloak.representations.idm.RoleRepresentation;
+
+public class RealmRoleRepresentationTestFactory {
+
+	public static RoleRepresentation create() {
+		var role = new RoleRepresentation();
+		role.setName(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
+
+		return role;
+	}
+}