forked from mongodb/mongo-java-driver
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueryOpTest.java
More file actions
64 lines (52 loc) · 2.19 KB
/
Copy pathQueryOpTest.java
File metadata and controls
64 lines (52 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.mongodb;
import com.mongodb.util.TestCase;
import org.testng.annotations.*;
/**
* Test that QueryOpBuilder creates query operations that abide by
* @author stevebriskin
*
*/
public class QueryOpTest extends TestCase{
@Test
public void testQueryOnly(){
DBObject query = QueryBuilder.start("x").greaterThan(1).get();
DBObject obj = new QueryOpBuilder().addQuery(QueryBuilder.start("x").greaterThan(1).get()).get();
assertEquals(query, obj);
assertNotNull(new QueryOpBuilder().get());
}
@Test
public void testQueryAndOthers(){
DBObject query = QueryBuilder.start("x").greaterThan(1).get();
DBObject orderBy = new BasicDBObject("x", 1);
DBObject hintObj = new BasicDBObject("x_i", 1);
String hintStr = "y_i";
DBObject queryOp = new QueryOpBuilder().addQuery(query).addOrderBy(orderBy).addHint(hintStr).get();
assertEquals(queryOp.get("query"), query);
assertEquals(queryOp.get("orderby"), orderBy);
assertEquals(queryOp.get("$hint"), hintStr);
assertNull(queryOp.get("$explain"));
assertNull(queryOp.get("$snapshot"));
//orderby should only be there if added
queryOp = new QueryOpBuilder().addQuery(query).addHint(hintStr).get();
assertEquals(queryOp.get("query"), query);
assertNull(queryOp.get("orderby"));
//hintObj takes precedence over hintStr
queryOp = new QueryOpBuilder().addQuery(query).addOrderBy(orderBy).addHint(hintStr).addHint(hintObj).get();
assertEquals(queryOp.get("query"), query);
assertEquals(queryOp.get("orderby"), orderBy);
assertEquals(queryOp.get("$hint"), hintObj);
queryOp = new QueryOpBuilder().addQuery(query).addExplain(true).addSnapshot(true).get();
assertEquals(queryOp.get("query"), query);
assertNull(queryOp.get("orderby"));
assertNull(queryOp.get("$hint"));
assertEquals(queryOp.get("$explain"), true);
assertEquals(queryOp.get("$snapshot"), true);
queryOp = new QueryOpBuilder().addQuery(query).addSpecialFields(new BasicDBObject("flag", "val")).get();
assertEquals(queryOp.get("flag"), "val");
assertEquals(queryOp.get("query"), query);
assertNull(queryOp.get("orderby"));
assertNull(queryOp.get("$hint"));
assertNull(queryOp.get("$explain"));
assertNull(queryOp.get("$snapshot"));
}
}