View Javadoc
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  }