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.UserGroup;
8 import de.dlr.shepard.auth.users.io.UserGroupIO;
9 import de.dlr.shepard.common.search.daos.SearchDAO;
10 import de.dlr.shepard.common.search.io.UserGroupSearchBody;
11 import de.dlr.shepard.common.search.io.UserGroupSearchParams;
12 import de.dlr.shepard.common.search.io.UserGroupSearchResult;
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 UserGroupSearchServiceTest extends BaseTestCase {
20
21 @Mock
22 private SearchDAO searchDAO;
23
24 @InjectMocks
25 private UserGroupSearchService userGroupSearcher;
26
27 @Test
28 public void searchUserGroupTest() {
29 String JSONquery = "{\"property\": \"name\", \"value\": \"MyName\", \"operator\": \"eq\"}";
30 var params = new UserGroupSearchParams(JSONquery);
31 var searchBody = new UserGroupSearchBody(params);
32 String selectionQuery = Neo4jQueryBuilder.userGroupSelectionQuery(JSONquery);
33 var userGroup = new UserGroup(123);
34 when(searchDAO.findUserGroups(selectionQuery, "userGroup")).thenReturn(List.of(userGroup));
35 var actual = userGroupSearcher.search(searchBody);
36 UserGroupIO[] result = { new UserGroupIO(userGroup) };
37 var expected = new UserGroupSearchResult(result, params);
38 assertEquals(expected, actual);
39 }
40 }