From 0ce9277764ab7c38ff0c32a5e1b891384c4f5ee0 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 24 Sep 2024 09:58:28 +0200
Subject: [PATCH] OZG-5031 OZG-6794 Fix UserProfileMapperTest

---
 .../userprofile/UserProfileMapperTest.java    | 84 ++++++++++++-------
 1 file changed, 54 insertions(+), 30 deletions(-)

diff --git a/user-manager-server/src/test/java/de/ozgcloud/user/userprofile/UserProfileMapperTest.java b/user-manager-server/src/test/java/de/ozgcloud/user/userprofile/UserProfileMapperTest.java
index 83452481..625f7408 100644
--- a/user-manager-server/src/test/java/de/ozgcloud/user/userprofile/UserProfileMapperTest.java
+++ b/user-manager-server/src/test/java/de/ozgcloud/user/userprofile/UserProfileMapperTest.java
@@ -24,67 +24,91 @@
 package de.ozgcloud.user.userprofile;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
 
 import de.ozgcloud.user.User;
 import de.ozgcloud.user.UserTestFactory;
 import de.ozgcloud.user.settings.GrpcUserSettingsTestFactory;
+import de.ozgcloud.user.settings.UserSettingsMapper;
 
 class UserProfileMapperTest {
 
+	@InjectMocks
 	private UserProfileMapper mapper = Mappers.getMapper(UserProfileMapper.class);
 
+	@Mock
+	private UserSettingsMapper userSettingsMapper;
+
 	@DisplayName("Map to")
 	@Nested
 	class TestMapTo {
 
-		@Test
-		void shouldMapFirstName() {
-			var userProfile = map();
+		@Nested
+		class OnValidArgument {
 
-			assertThat(userProfile.getFirstName()).isEqualTo(UserTestFactory.FIRST_NAME);
-		}
+			private GrpcUserSettings grpcUserSettings = GrpcUserSettingsTestFactory.create();
 
-		@Test
-		void shouldMapLastName() {
-			var userProfile = map();
+			@BeforeEach
+			void mockUserSettingsMapper() {
+				when(userSettingsMapper.toGrpc(UserTestFactory.USER_SETTINGS)).thenReturn(grpcUserSettings);
+			}
 
-			assertThat(userProfile.getLastName()).isEqualTo(UserTestFactory.LAST_NAME);
-		}
+			@Test
+			void shouldMapFirstName() {
+				var userProfile = map();
 
-		@Test
-		void shouldMapEMail() {
-			var userProfile = map();
+				assertThat(userProfile.getFirstName()).isEqualTo(UserTestFactory.FIRST_NAME);
+			}
 
-			assertThat(userProfile.getEmail()).isEqualTo(UserTestFactory.EMAIL);
-		}
+			@Test
+			void shouldMapLastName() {
+				var userProfile = map();
 
-		@Test
-		void shouldMapId() {
-			var userProfile = map();
+				assertThat(userProfile.getLastName()).isEqualTo(UserTestFactory.LAST_NAME);
+			}
 
-			assertThat(userProfile.getId()).isEqualTo(UserTestFactory.ID.toString());
-		}
+			@Test
+			void shouldMapEMail() {
+				var userProfile = map();
 
-		@Test
-		void shouldMapUserSettings() {
-			var userProfile = map();
+				assertThat(userProfile.getEmail()).isEqualTo(UserTestFactory.EMAIL);
+			}
 
-			assertThat(userProfile.getUserSettings()).usingRecursiveComparison().isEqualTo(GrpcUserSettingsTestFactory.create());
-		}
+			@Test
+			void shouldMapId() {
+				var userProfile = map();
+
+				assertThat(userProfile.getId()).isEqualTo(UserTestFactory.ID.toString());
+			}
+
+			@Test
+			void shouldMapUserSettings() {
+				var userProfile = map();
 
-		private GrpcUserProfile map() {
-			return mapper.mapTo(UserTestFactory.create());
+				assertThat(userProfile.getUserSettings()).isEqualTo(grpcUserSettings);
+			}
+
+			private GrpcUserProfile map() {
+				return mapper.mapTo(UserTestFactory.create());
+			}
 		}
 
-		@Test
-		void shouldProceedWithNull() {
-			Assertions.assertDoesNotThrow(() -> mapper.mapTo(User.builder().build()));
+		@Nested
+		class OnEmptyUser {
+
+			@Test
+			void shouldProceedWithNull() {
+				Assertions.assertDoesNotThrow(() -> mapper.mapTo(User.builder().build()));
+			}
 		}
 	}
 }
\ No newline at end of file
-- 
GitLab