Skip to content

Commit ae57549

Browse files
committed
write more Filter unit tests
1 parent c3dc41d commit ae57549

File tree

2 files changed

+114
-15
lines changed

2 files changed

+114
-15
lines changed

lightblue-ldap-crud/src/main/java/com/redhat/lightblue/crud/ldap/FilterTranslator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private Filter translate(FieldComparisonExpression query){
111111
private Filter translate(NaryLogicalExpression query){
112112
List<Filter> filters = new ArrayList<Filter>();
113113
for(QueryExpression subQuery : query.getQueries()){
114-
translate(subQuery);
114+
filters.add(translate(subQuery));
115115
}
116116
switch (query.getOp()){
117117
case _and:
@@ -167,9 +167,9 @@ private Filter translate(ValueComparisonExpression query){
167167
return Filter.createGreaterOrEqualFilter(field, rValue);
168168
case _lte:
169169
return Filter.createLessOrEqualFilter(field, rValue);
170-
case _gt: //!lte
170+
case _gt: //aka. !lte
171171
return Filter.createNOTFilter(Filter.createLessOrEqualFilter(field, rValue));
172-
case _lt: //!gte
172+
case _lt: //aka. !gte
173173
return Filter.createNOTFilter(Filter.createGreaterOrEqualFilter(field, rValue));
174174
default:
175175
throw new UnsupportedOperationException("Unsupported operation: " + query.getOp());

lightblue-ldap-crud/src/test/java/com/redhat/lightblue/crud/ldap/FilterTranslatorTest.java

Lines changed: 111 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,21 @@
2020

2121
import static org.junit.Assert.assertEquals;
2222

23+
import java.util.ArrayList;
24+
import java.util.Arrays;
25+
2326
import org.junit.Test;
2427

28+
import com.redhat.lightblue.query.ArrayContainsExpression;
2529
import com.redhat.lightblue.query.BinaryComparisonOperator;
30+
import com.redhat.lightblue.query.ContainsOperator;
31+
import com.redhat.lightblue.query.NaryLogicalExpression;
32+
import com.redhat.lightblue.query.NaryLogicalOperator;
33+
import com.redhat.lightblue.query.NaryRelationalExpression;
34+
import com.redhat.lightblue.query.NaryRelationalOperator;
35+
import com.redhat.lightblue.query.QueryExpression;
36+
import com.redhat.lightblue.query.UnaryLogicalExpression;
37+
import com.redhat.lightblue.query.UnaryLogicalOperator;
2638
import com.redhat.lightblue.query.Value;
2739
import com.redhat.lightblue.query.ValueComparisonExpression;
2840
import com.redhat.lightblue.util.Path;
@@ -31,57 +43,144 @@
3143
public class FilterTranslatorTest {
3244

3345
@Test
34-
public void testTranslate_ValueEquals(){
35-
ValueComparisonExpression query = new ValueComparisonExpression(
46+
public void testTranslate_ValueComparisonExpression_Equals(){
47+
QueryExpression query = new ValueComparisonExpression(
3648
new Path("somekey"), BinaryComparisonOperator._eq, new Value("somevalue"));
3749

3850
Filter filter = new FilterTranslator().translate(query);
3951
assertEquals("(somekey=somevalue)", filter.toString());
4052
}
4153

4254
@Test
43-
public void testTranslate_ValueNotEquals(){
44-
ValueComparisonExpression query = new ValueComparisonExpression(
55+
public void testTranslate_ValueComparisonExpression_NotEquals(){
56+
QueryExpression query = new ValueComparisonExpression(
4557
new Path("somekey"), BinaryComparisonOperator._neq, new Value("somevalue"));
4658

4759
Filter filter = new FilterTranslator().translate(query);
4860
assertEquals("(!(somekey=somevalue))", filter.toString());
4961
}
5062

5163
@Test
52-
public void testTranslate_ValueGTE(){
53-
ValueComparisonExpression query = new ValueComparisonExpression(
64+
public void testTranslate_ValueComparisonExpression_GTE(){
65+
QueryExpression query = new ValueComparisonExpression(
5466
new Path("somekey"), BinaryComparisonOperator._gte, new Value("somevalue"));
5567

5668
Filter filter = new FilterTranslator().translate(query);
5769
assertEquals("(somekey>=somevalue)", filter.toString());
5870
}
5971

6072
@Test
61-
public void testTranslate_ValueGT(){
62-
ValueComparisonExpression query = new ValueComparisonExpression(
73+
public void testTranslate_ValueComparisonExpression_GT(){
74+
QueryExpression query = new ValueComparisonExpression(
6375
new Path("somekey"), BinaryComparisonOperator._gt, new Value("somevalue"));
6476

6577
Filter filter = new FilterTranslator().translate(query);
6678
assertEquals("(!(somekey<=somevalue))", filter.toString());
6779
}
6880

6981
@Test
70-
public void testTranslate_ValueLTE(){
71-
ValueComparisonExpression query = new ValueComparisonExpression(
82+
public void testTranslate_ValueComparisonExpression_LTE(){
83+
QueryExpression query = new ValueComparisonExpression(
7284
new Path("somekey"), BinaryComparisonOperator._lte, new Value("somevalue"));
7385

7486
Filter filter = new FilterTranslator().translate(query);
7587
assertEquals("(somekey<=somevalue)", filter.toString());
7688
}
7789

7890
@Test
79-
public void testTranslate_ValueLT(){
80-
ValueComparisonExpression query = new ValueComparisonExpression(
91+
public void testTranslate_ValueComparisonExpression_LT(){
92+
QueryExpression query = new ValueComparisonExpression(
8193
new Path("somekey"), BinaryComparisonOperator._lt, new Value("somevalue"));
8294

8395
Filter filter = new FilterTranslator().translate(query);
8496
assertEquals("(!(somekey>=somevalue))", filter.toString());
8597
}
8698

99+
@Test
100+
public void testTranslate_UnaryLogicalExpression_NOT(){
101+
QueryExpression query = new UnaryLogicalExpression(
102+
UnaryLogicalOperator._not,
103+
new ValueComparisonExpression(new Path("somekey"), BinaryComparisonOperator._eq, new Value("somevalue")));
104+
105+
Filter filter = new FilterTranslator().translate(query);
106+
assertEquals("(!(somekey=somevalue))", filter.toString());
107+
}
108+
109+
@Test
110+
public void testTranslate_NaryRelationalExpression_IN(){
111+
QueryExpression query = new NaryRelationalExpression(
112+
new Path("somekey"),
113+
NaryRelationalOperator._in,
114+
Arrays.asList(new Value("somevalue"), new Value("someothervalue")));
115+
116+
Filter filter = new FilterTranslator().translate(query);
117+
assertEquals("(|(somekey=somevalue)(somekey=someothervalue))", filter.toString());
118+
}
119+
120+
@Test
121+
public void testTranslate_NaryRelationalExpression_NOT_IN(){
122+
QueryExpression query = new NaryRelationalExpression(
123+
new Path("somekey"),
124+
NaryRelationalOperator._not_in,
125+
Arrays.asList(new Value("somevalue"), new Value("someothervalue")));
126+
127+
Filter filter = new FilterTranslator().translate(query);
128+
assertEquals("(!(|(somekey=somevalue)(somekey=someothervalue)))", filter.toString());
129+
}
130+
131+
@Test
132+
public void testTranslate_NaryLogicalExpression_AND(){
133+
QueryExpression query = new NaryLogicalExpression(
134+
NaryLogicalOperator._and, new ArrayList<QueryExpression>(Arrays.asList(
135+
new ValueComparisonExpression(new Path("somekey"), BinaryComparisonOperator._eq, new Value("somevalue")),
136+
new ValueComparisonExpression(new Path("someotherkey"), BinaryComparisonOperator._eq, new Value("someothervalue")))));
137+
138+
Filter filter = new FilterTranslator().translate(query);
139+
assertEquals("(&(somekey=somevalue)(someotherkey=someothervalue))", filter.toString());
140+
}
141+
142+
@Test
143+
public void testTranslate_NaryLogicalExpression_OR(){
144+
QueryExpression query = new NaryLogicalExpression(
145+
NaryLogicalOperator._or, new ArrayList<QueryExpression>(Arrays.asList(
146+
new ValueComparisonExpression(new Path("somekey"), BinaryComparisonOperator._eq, new Value("somevalue")),
147+
new ValueComparisonExpression(new Path("someotherkey"), BinaryComparisonOperator._eq, new Value("someothervalue")))));
148+
149+
Filter filter = new FilterTranslator().translate(query);
150+
assertEquals("(|(somekey=somevalue)(someotherkey=someothervalue))", filter.toString());
151+
}
152+
153+
@Test
154+
public void testTranslate_ArrayContainsExpression_ANY(){
155+
QueryExpression query = new ArrayContainsExpression(
156+
new Path("somekey"),
157+
ContainsOperator._any,
158+
Arrays.asList(new Value("somevalue"), new Value("someothervalue")));
159+
160+
Filter filter = new FilterTranslator().translate(query);
161+
assertEquals("(|(somekey=somevalue)(somekey=someothervalue))", filter.toString());
162+
}
163+
164+
@Test
165+
public void testTranslate_ArrayContainsExpression_ALL(){
166+
QueryExpression query = new ArrayContainsExpression(
167+
new Path("somekey"),
168+
ContainsOperator._all,
169+
Arrays.asList(new Value("somevalue"), new Value("someothervalue")));
170+
171+
Filter filter = new FilterTranslator().translate(query);
172+
assertEquals("(&(somekey=somevalue)(somekey=someothervalue))", filter.toString());
173+
}
174+
175+
@Test
176+
public void testTranslate_ArrayContainsExpression_NONE(){
177+
QueryExpression query = new ArrayContainsExpression(
178+
new Path("somekey"),
179+
ContainsOperator._none,
180+
Arrays.asList(new Value("somevalue"), new Value("someothervalue")));
181+
182+
Filter filter = new FilterTranslator().translate(query);
183+
assertEquals("(!(&(somekey=somevalue)(somekey=someothervalue)))", filter.toString());
184+
}
185+
87186
}

0 commit comments

Comments
 (0)