DATACOUCH-515 implement additional operators in N1qlQueryCreator and QueryCriteria (#213)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
This commit is contained in:
@@ -65,4 +65,161 @@ class QueryCriteriaTests {
|
||||
assertEquals("`name` = \"Bubba\" or (`age` > 12 or `country` = \"Austria\")", c.export());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testNestedNotIn() {
|
||||
QueryCriteria c =
|
||||
where("name").is("Bubba").or(
|
||||
where("age").gt(12).or("country").is("Austria")).and(
|
||||
where("state").notIn(new String[]{"Alabama", "Florida"}));
|
||||
assertEquals("`name` = \"Bubba\" or (`age` > 12 or `country` = \"Austria\") and " +
|
||||
"(not( (`state` in ( [ \"Alabama\", \"Florida\" ] )) ))",
|
||||
c.export());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testLt() {
|
||||
QueryCriteria c = where("name").lt("Couch");
|
||||
assertEquals("`name` < \"Couch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testLte() {
|
||||
QueryCriteria c = where("name").lte("Couch");
|
||||
assertEquals("`name` <= \"Couch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGt() {
|
||||
QueryCriteria c = where("name").gt("Couch");
|
||||
assertEquals("`name` > \"Couch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGte() {
|
||||
QueryCriteria c = where("name").gte("Couch");
|
||||
assertEquals("`name` >= \"Couch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNe() {
|
||||
QueryCriteria c = where("name").ne("Couch");
|
||||
assertEquals("`name` != \"Couch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testStartingWith() {
|
||||
QueryCriteria c = where("name").startingWith("Cou");
|
||||
assertEquals("`name` like \"Cou%\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testStartingWithExpr() {
|
||||
QueryCriteria c = where("name").startingWith(where("name").plus(""));
|
||||
assertEquals("`name` like ((\"%\" + ((`name` + \"\"))))", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testEndingWith() {
|
||||
QueryCriteria c = where("name").endingWith("ouch");
|
||||
assertEquals("`name` like \"%ouch\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRegex() {
|
||||
QueryCriteria c = where("name").regex("C.*h");
|
||||
assertEquals("regexp_like(`name`, \"C.*h\")", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testContaining() {
|
||||
QueryCriteria c = where("name").containing("ouch");
|
||||
assertEquals("contains(`name`, \"ouch\")", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNotContaining() {
|
||||
QueryCriteria c = where("name").notContaining("Elvis");
|
||||
assertEquals("not( (contains(`name`, \"Elvis\")) )", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testLike() {
|
||||
QueryCriteria c = where("name").like("%ouch%");
|
||||
assertEquals("`name` like \"%ouch%\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNotLike() {
|
||||
QueryCriteria c = where("name").notLike("%Elvis%");
|
||||
assertEquals("not( (`name` like \"%Elvis%\") )", c.export());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testIsNull() {
|
||||
QueryCriteria c = where("name").isNull();
|
||||
assertEquals("`name` is null", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIsNotNull() {
|
||||
QueryCriteria c = where("name").isNotNull();
|
||||
assertEquals("`name` is not null", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIsMissing() {
|
||||
QueryCriteria c = where("name").isMissing();
|
||||
assertEquals("`name` is missing", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIsNotMissing() {
|
||||
QueryCriteria c = where("name").isNotMissing();
|
||||
assertEquals("`name` is not missing", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIsValued() {
|
||||
QueryCriteria c = where("name").isValued();
|
||||
assertEquals("`name` is valued", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIsNotValued() {
|
||||
QueryCriteria c = where("name").isNotValued();
|
||||
assertEquals("`name` is not valued", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBetween() {
|
||||
QueryCriteria c = where("name").between("Davis", "Gump");
|
||||
assertEquals("`name` between \"Davis\" and \"Gump\"", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIn() {
|
||||
QueryCriteria c = where("name").in(new String[]{"gump", "davis"});
|
||||
assertEquals("`name` in ( [ \"gump\", \"davis\" ] )", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNotIn() {
|
||||
QueryCriteria c = where("name").notIn(new String[]{"gump", "davis"});
|
||||
assertEquals("not( (`name` in ( [ \"gump\", \"davis\" ] )) )", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTrue() {
|
||||
QueryCriteria c = where("name").TRUE();
|
||||
assertEquals("`name`", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFalse() {
|
||||
QueryCriteria c = where("name").FALSE();
|
||||
assertEquals("not( (`name`) )", c.export());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user