1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib.search;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import org.apache.cxf.jaxrs.ext.search.ConditionType;
25 import org.apache.cxf.jaxrs.ext.search.SearchBean;
26 import org.apache.cxf.jaxrs.ext.search.SearchCondition;
27 import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
28 import org.junit.jupiter.api.Test;
29
30 public class SyncopeFiqlParserTest {
31
32 private static final SyncopeFiqlParser<SearchBean> FIQL_PARSER = new SyncopeFiqlParser<>(
33 SearchBean.class, AbstractFiqlSearchConditionBuilder.CONTEXTUAL_PROPERTIES);
34
35 @SuppressWarnings("unchecked")
36 private static SyncopeFiqlSearchCondition<SearchBean> parse(final String fiql) {
37 SearchCondition<SearchBean> parsed = FIQL_PARSER.parse(fiql);
38 assertTrue(parsed instanceof SyncopeFiqlSearchCondition);
39 return (SyncopeFiqlSearchCondition) parsed;
40 }
41
42 @Test
43 public void testEqualsIgnoreCase() {
44 SyncopeFiqlSearchCondition<SearchBean> cond = parse("name=~ami*");
45 assertEquals(SyncopeFiqlParser.IEQ, cond.getOperator());
46 assertEquals(ConditionType.CUSTOM, cond.getConditionType());
47 assertEquals("ami*", cond.getCondition().get("name"));
48 }
49
50 @Test
51 public void testNotEqualsIgnoreCase() {
52 SyncopeFiqlSearchCondition<SearchBean> cond = parse("name!~ami*");
53 assertEquals(SyncopeFiqlParser.NIEQ, cond.getOperator());
54 assertEquals(ConditionType.CUSTOM, cond.getConditionType());
55 assertEquals("ami*", cond.getCondition().get("name"));
56 }
57
58
59
60
61 @Test
62 public void testEquals() {
63 SyncopeFiqlSearchCondition<SearchBean> cond = parse("name==ami*");
64 assertEquals(FiqlParser.EQ, cond.getOperator());
65 assertEquals(ConditionType.EQUALS, cond.getConditionType());
66 assertEquals("ami*", cond.getCondition().get("name"));
67 }
68
69 }