1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.panels.search;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23 import static org.mockito.Mockito.mock;
24 import static org.mockito.Mockito.when;
25
26 import java.util.List;
27 import org.apache.syncope.client.console.AbstractAdminTest;
28 import org.apache.syncope.client.console.pages.BasePage;
29 import org.apache.syncope.client.ui.commons.Constants;
30 import org.apache.wicket.Component;
31 import org.apache.wicket.PageReference;
32 import org.apache.wicket.model.util.ListModel;
33 import org.apache.wicket.util.tester.FormTester;
34 import org.junit.jupiter.api.Test;
35
36 public class UserSearchPanelTest extends AbstractAdminTest {
37
38 @Test
39 public void test() {
40 BasePage page = new BasePage();
41 PageReference pageRef = mock(PageReference.class);
42 when(pageRef.getPage()).thenReturn(page);
43
44 SearchClause clause = new SearchClause();
45 clause.setComparator(SearchClause.Comparator.EQUALS);
46 clause.setType(SearchClause.Type.ATTRIBUTE);
47 clause.setProperty("username");
48
49 TESTER.startComponentInPage(new UserSearchPanel.Builder(
50 new ListModel<>(List.of(clause)), pageRef).
51 required(true).enableSearch().build("content"));
52
53 FormTester formTester = TESTER.newFormTester(
54 "content:searchFormContainer:search:multiValueContainer:innerForm");
55
56 assertEquals("username", formTester.getForm().
57 get("content:view:0:panel:container:property:textField").getDefaultModelObjectAsString());
58 assertNull(formTester.getForm().
59 get("content:view:0:panel:container:value:textField").getDefaultModelObject());
60
61 formTester.setValue("content:view:0:panel:container:property:textField", "firstname");
62 TESTER.executeAjaxEvent(formTester.getForm().
63 get("content:view:0:panel:container:property:textField"), Constants.ON_KEYDOWN);
64 formTester.setValue("content:view:0:panel:container:value:textField", "vincenzo");
65 TESTER.executeAjaxEvent(formTester.getForm().
66 get("content:view:0:panel:container:value:textField"), Constants.ON_KEYDOWN);
67
68 Component searchButton = formTester.getForm().
69 get("content:view:0:panel:container:operatorContainer:operator:search");
70 TESTER.clickLink(searchButton);
71 TESTER.executeAjaxEvent(searchButton.getPageRelativePath(), Constants.ON_CLICK);
72
73 assertEquals("firstname", formTester.getForm().
74 get("content:view:0:panel:container:property:textField").getDefaultModelObjectAsString());
75 assertEquals("vincenzo", formTester.getForm().
76 get("content:view:0:panel:container:value:textField").getDefaultModelObjectAsString());
77 }
78 }