Sonarwork
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java
new file mode 100644
index 0000000..7f31a76
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java
@@ -0,0 +1,72 @@
+package org.eclipse.openk.contactbasedata.service.util;
+
+import org.eclipse.openk.contactbasedata.ContactBaseDataApplication;
+import org.eclipse.openk.contactbasedata.support.MockDataHelper;
+import org.eclipse.openk.contactbasedata.viewmodel.LdapUser;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import java.util.Arrays;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.when;
+
+@SpringBootTest(classes = ContactBaseDataApplication.class)
+@ActiveProfiles("test") // Todo: Find a better way to configure the tests
+public class LdapUserAttributesMapperTest {
+
+    @Autowired
+    LdapUserAttributesMapper ldapUserAttributesMapper;
+
+    @Test
+    public void shouldMapFromAttributesCorrectly() throws NamingException {
+        Attributes attributes = Mockito.mock(Attributes.class);
+
+        String[] fields = {"uid", "cn", "sn", "givenname", "title", "mail", "department", "phone"};
+
+        Arrays.stream(fields).forEach( x -> {
+                    Attribute attr = MockDataHelper.mockLdapAttribute('_' + x + "_");
+                    when(attributes.get(x)).thenReturn(attr);
+                });
+
+        LdapUser ldapUser = ldapUserAttributesMapper.mapFromAttributes(attributes);
+        assertEquals("_uid_", ldapUser.getUid());
+        assertEquals("_cn_", ldapUser.getFullName());
+        assertEquals("_sn_", ldapUser.getLastName());
+        assertEquals("_givenname_", ldapUser.getFirstName());
+        assertEquals("_title_", ldapUser.getTitle());
+        assertEquals("_mail_", ldapUser.getMail());
+        assertEquals("_department_", ldapUser.getDepartment());
+        assertEquals("_phone_", ldapUser.getTelephoneNumber());
+
+    }
+
+    @Test
+    public void shouldMapFromAttributesEmpty() throws NamingException {
+        Attributes attributes = Mockito.mock(Attributes.class);
+
+        String[] fields = {"uid", "cn", "sn", "givenname", "title", "mail", "department", "phone"};
+
+        Arrays.stream(fields).forEach( x -> {
+            when(attributes.get(x)).thenReturn(null);
+        });
+
+        LdapUser ldapUser = ldapUserAttributesMapper.mapFromAttributes(attributes);
+        assertEquals(null, ldapUser.getUid());
+        assertEquals(null, ldapUser.getFullName());
+        assertEquals(null, ldapUser.getLastName());
+        assertEquals(null, ldapUser.getFirstName());
+        assertEquals(null, ldapUser.getTitle());
+        assertEquals(null, ldapUser.getMail());
+        assertEquals(null, ldapUser.getDepartment());
+        assertEquals(null, ldapUser.getTelephoneNumber());
+
+    }
+
+}
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
index 981f434..911cc30 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
@@ -21,9 +21,14 @@
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
 
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
 import java.sql.Date;
 import java.util.*;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class MockDataHelper {
 
     public static Version mockVersion() {
@@ -766,4 +771,14 @@
         list.add( keyCloakUser );
         return list;
     }
+
+    public static Attribute mockLdapAttribute(String value )  {
+        Attribute attribute = mock( Attribute.class);
+        try {
+            when(attribute.get()).thenReturn(value);
+        } catch (NamingException e) {
+           return null;
+        }
+        return attribute;
+    }
 }