1 package de.dlr.shepard.common.search.services;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.mockito.Mockito.when;
5
6 import de.dlr.shepard.BaseTestCase;
7 import de.dlr.shepard.auth.users.entities.User;
8 import de.dlr.shepard.auth.users.io.UserIO;
9 import de.dlr.shepard.common.search.daos.SearchDAO;
10 import de.dlr.shepard.common.search.io.UserSearchBody;
11 import de.dlr.shepard.common.search.io.UserSearchParams;
12 import de.dlr.shepard.common.search.io.UserSearchResult;
13 import de.dlr.shepard.common.search.query.Neo4jQueryBuilder;
14 import java.util.List;
15 import org.junit.jupiter.api.Test;
16 import org.mockito.InjectMocks;
17 import org.mockito.Mock;
18
19 public class UserSearchServiceTest extends BaseTestCase {
20
21 @Mock
22 private SearchDAO searchDAO;
23
24 @InjectMocks
25 private UserSearchService userSearcher;
26
27 @Test
28 public void searchUserTest() {
29 String JSONquery = "{\"property\": \"name\", \"value\": \"MyName\", \"operator\": \"eq\"}";
30 var params = new UserSearchParams(JSONquery);
31 var searchBody = new UserSearchBody(params);
32 String selectionQuery = Neo4jQueryBuilder.userSelectionQuery(JSONquery);
33 var user = new User("user");
34 when(searchDAO.findUsers(selectionQuery, "user")).thenReturn(List.of(user));
35 var actual = userSearcher.search(searchBody);
36 UserIO[] result = { new UserIO(user) };
37 var expected = new UserSearchResult(result, params);
38 assertEquals(expected, actual);
39 }
40 }