diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
index 86db98c..d0e9300 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
@@ -30,6 +30,8 @@
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
+import java.util.UUID;
+
 import static org.hamcrest.Matchers.is;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
@@ -61,4 +63,15 @@
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON))
                 .andExpect(jsonPath("totalElements", is(2)));
     }
+
+    @Test
+    public void shouldReturnSingleContactByUuid() throws Exception {
+        VwDetailedContact vwDetailedContact = MockDataHelper.mockVDetailedContact();
+
+        when(contactService.findDetailedContactByUuid(any(UUID.class))).thenReturn(vwDetailedContact);
+
+        mockMvc.perform(get("/contacts/{uuid}", UUID.randomUUID()))
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
 }
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
index b26b72b..c8d9cb4 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
@@ -30,6 +30,8 @@
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.Date;
+import java.util.Optional;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.*;
@@ -58,4 +60,14 @@
 
         assertEquals(mockPaged.getTotalElements(), retPage.getTotalElements());
     }
+
+    @Test
+    public void shouldFindSingleDetailedContactProperly() {
+        VwDetailedContact mockContact = MockDataHelper.mockVDetailedContact();
+        when(detailedContactRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(mockContact));
+
+        VwDetailedContact detailedContact = contactService.findDetailedContactByUuid(UUID.randomUUID());
+
+        assertEquals(detailedContact.getUuid(), mockContact.getUuid());
+    }
 }
