|
|
|
|
@@ -4,6 +4,9 @@ import static org.junit.Assert.assertEquals;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
|
|
|
|
import com.couchbase.client.java.document.json.JsonArray;
|
|
|
|
|
import com.couchbase.client.java.query.dsl.Expression;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
import org.springframework.data.couchbase.repository.query.support.N1qlQueryCreatorUtils;
|
|
|
|
|
@@ -16,18 +19,24 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void testBETWEEN() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.BETWEEN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", "b", 1, 2, "c", "d").iterator();
|
|
|
|
|
String expected = "doc.field BETWEEN \"a\" AND \"b\"";
|
|
|
|
|
String expectedNum = "doc.field BETWEEN 1 AND 2";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) BETWEEN LOWER(\"c\") AND LOWER(\"d\")";
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", "b", 1, 2, "C", "D").iterator();
|
|
|
|
|
String expected = "doc.field BETWEEN $0 AND $1";
|
|
|
|
|
String expectedNum = "doc.field BETWEEN $0 AND $1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) BETWEEN LOWER($0) AND LOWER($1)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a").add("b"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1).add(2), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("C").add("D"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -38,13 +47,19 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String expectedNum = "doc.field IS NOT NULL";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IS NOT NULL";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create(), phexp);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -55,234 +70,318 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String expectedNum = "doc.field IS NULL";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IS NULL";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create(), phexp);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testLESS_THAN() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.LESS_THAN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field < \"a\"";
|
|
|
|
|
String expectedNum = "doc.field < 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) < LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field < $0";
|
|
|
|
|
String expectedNum = "doc.field < $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) < LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testLESS_THAN_EQUAL() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.LESS_THAN_EQUAL;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field <= \"a\"";
|
|
|
|
|
String expectedNum = "doc.field <= 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) <= LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field <= $0";
|
|
|
|
|
String expectedNum = "doc.field <= $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) <= LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testGREATER_THAN() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.GREATER_THAN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field > \"a\"";
|
|
|
|
|
String expectedNum = "doc.field > 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) > LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field > $0";
|
|
|
|
|
String expectedNum = "doc.field > $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) > LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testGREATER_THAN_EQUAL() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.GREATER_THAN_EQUAL;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field >= \"a\"";
|
|
|
|
|
String expectedNum = "doc.field >= 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) >= LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field >= $0";
|
|
|
|
|
String expectedNum = "doc.field >= $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) >= LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testBEFORE() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.BEFORE;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field < \"a\"";
|
|
|
|
|
String expectedNum = "doc.field < 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) < LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field < $0";
|
|
|
|
|
String expectedNum = "doc.field < $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) < LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testAFTER() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.AFTER;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field > \"a\"";
|
|
|
|
|
String expectedNum = "doc.field > 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) > LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field > $0";
|
|
|
|
|
String expectedNum = "doc.field > $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) > LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testNOT_LIKE() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.NOT_LIKE;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field NOT LIKE \"a\"";
|
|
|
|
|
String expectedNum = "doc.field NOT LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field NOT LIKE $0";
|
|
|
|
|
String expectedNum = "doc.field NOT LIKE $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testLIKE() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.LIKE;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field LIKE \"a\"";
|
|
|
|
|
String expectedNum = "doc.field LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field LIKE $0";
|
|
|
|
|
String expectedNum = "doc.field LIKE $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testSTARTING_WITH() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.STARTING_WITH;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field LIKE \"a%\"";
|
|
|
|
|
String expectedNum = "doc.field LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"b%\")";
|
|
|
|
|
String expected = "doc.field LIKE $0 || '%'";
|
|
|
|
|
String expectedNum = "doc.field LIKE $0 || '%'";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER($0) || '%'";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testENDING_WITH() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.ENDING_WITH;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field LIKE \"%a\"";
|
|
|
|
|
String expectedNum = "doc.field LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"%b\")";
|
|
|
|
|
String expected = "doc.field LIKE '%' || $0";
|
|
|
|
|
String expectedNum = "doc.field LIKE '%' || $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE '%' || LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testNOT_CONTAINING() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.NOT_CONTAINING;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field NOT LIKE \"%a%\"";
|
|
|
|
|
String expectedNum = "doc.field NOT LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE LOWER(\"%b%\")";
|
|
|
|
|
String expected = "doc.field NOT LIKE '%' || $0 || '%'";
|
|
|
|
|
String expectedNum = "doc.field NOT LIKE '%' || $0 || '%'";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE '%' || LOWER($0) || '%'";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testCONTAINING() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.CONTAINING;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field LIKE \"%a%\"";
|
|
|
|
|
String expectedNum = "doc.field LIKE 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"%b%\")";
|
|
|
|
|
String expected = "doc.field LIKE '%' || $0 || '%'";
|
|
|
|
|
String expectedNum = "doc.field LIKE '%' || $0 || '%'";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) LIKE '%' || LOWER($0) || '%'";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testNOT_IN() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.NOT_IN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field NOT IN [\"a\"]";
|
|
|
|
|
String expectedNum = "doc.field NOT IN [1]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"b\"]";
|
|
|
|
|
String expected = "doc.field NOT IN $0";
|
|
|
|
|
String expectedNum = "doc.field NOT IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("a")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add(1)), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("b")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -291,14 +390,18 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
List<Object> val1 = Arrays.<Object>asList("av1", "av2");
|
|
|
|
|
List<Object> val2 = Arrays.<Object>asList("bv1", "bv2");
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList(val1, val2).iterator();
|
|
|
|
|
String expected = "doc.field NOT IN [\"av1\",\"av2\"]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"bv1\",\"bv2\"]";
|
|
|
|
|
String expected = "doc.field NOT IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("av1").add("av2")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("bv1").add("bv2")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -307,31 +410,41 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String[] val1 = {"av1", "av2"};
|
|
|
|
|
String[] val2 = {"bv1", "bv2"};
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList(val1, val2).iterator();
|
|
|
|
|
String expected = "doc.field NOT IN [\"av1\",\"av2\"]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"bv1\",\"bv2\"]";
|
|
|
|
|
String expected = "doc.field NOT IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) NOT IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("av1").add("av2")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("bv1").add("bv2")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testIN() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.IN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field IN [\"a\"]";
|
|
|
|
|
String expectedNum = "doc.field IN [1]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN [\"b\"]";
|
|
|
|
|
String expected = "doc.field IN $0";
|
|
|
|
|
String expectedNum = "doc.field IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("a")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add(1)), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("b")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -340,14 +453,18 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
List<Object> val1 = Arrays.<Object>asList("av1", "av2");
|
|
|
|
|
List<Object> val2 = Arrays.<Object>asList("bv1", "bv2");
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList(val1, val2).iterator();
|
|
|
|
|
String expected = "doc.field IN [\"av1\",\"av2\"]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN [\"bv1\",\"bv2\"]";
|
|
|
|
|
String expected = "doc.field IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("av1").add("av2")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("bv1").add("bv2")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -356,14 +473,18 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String[] val1 = {"av1", "av2"};
|
|
|
|
|
String[] val2 = {"bv1", "bv2"};
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList(val1, val2).iterator();
|
|
|
|
|
String expected = "doc.field IN [\"av1\",\"av2\"]";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN [\"bv1\",\"bv2\"]";
|
|
|
|
|
String expected = "doc.field IN $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IN $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("av1").add("av2")), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(JsonArray.create().add("bv1").add("bv2")), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test(expected = IllegalArgumentException.class)
|
|
|
|
|
@@ -371,7 +492,7 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
Part.Type keyword = Part.Type.NEAR;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), JsonArray.create());;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test(expected = IllegalArgumentException.class)
|
|
|
|
|
@@ -379,24 +500,30 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
Part.Type keyword = Part.Type.WITHIN;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), JsonArray.create());;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testREGEX() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.REGEX;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "REGEXP_LIKE(doc.field, \"a\")";
|
|
|
|
|
String expectedNum = "REGEXP_LIKE(doc.field, \"1\")";
|
|
|
|
|
String expectedIgnoreCase = "REGEXP_LIKE(doc.field, \"b\")";
|
|
|
|
|
String expected = "REGEXP_LIKE(doc.field, $0)";
|
|
|
|
|
String expectedNum = "REGEXP_LIKE(doc.field, $0)";
|
|
|
|
|
String expectedIgnoreCase = "REGEXP_LIKE(LOWER(doc.field), $0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add("1"), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -407,13 +534,19 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String expectedNum = "doc.field IS NOT MISSING";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) IS NOT MISSING";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create(), phexp);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -424,13 +557,19 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String expectedNum = "doc.field = TRUE";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) = TRUE";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create(), phexp);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@@ -441,30 +580,42 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
String expectedNum = "doc.field = FALSE";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) = FALSE";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create(), phexp);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create(), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testNEGATING_SIMPLE_PROPERTY() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.NEGATING_SIMPLE_PROPERTY;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
|
|
|
|
String expected = "doc.field != \"a\"";
|
|
|
|
|
String expectedNum = "doc.field != 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) != LOWER(\"b\")";
|
|
|
|
|
String expected = "doc.field != $0";
|
|
|
|
|
String expectedNum = "doc.field != $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) != LOWER($0)";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum TestEnum {
|
|
|
|
|
@@ -475,19 +626,27 @@ public class N1qlQueryCreatorTest {
|
|
|
|
|
public void testSIMPLE_PROPERTY() throws Exception {
|
|
|
|
|
Part.Type keyword = Part.Type.SIMPLE_PROPERTY;
|
|
|
|
|
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b", TestEnum.TEST).iterator();
|
|
|
|
|
String expected = "doc.field = \"a\"";
|
|
|
|
|
String expectedNum = "doc.field = 1";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) = LOWER(\"b\")";
|
|
|
|
|
String expectedEnum = "doc.field = \"TEST\"";
|
|
|
|
|
String expected = "doc.field = $0";
|
|
|
|
|
String expectedNum = "doc.field = $0";
|
|
|
|
|
String expectedIgnoreCase = "LOWER(doc.field) = LOWER($0)";
|
|
|
|
|
String expectedEnum = "doc.field = $0";
|
|
|
|
|
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
|
|
|
|
Expression expEnum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
|
|
|
|
JsonArray phexp = JsonArray.create();
|
|
|
|
|
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexp);
|
|
|
|
|
JsonArray phexpNum = JsonArray.create();
|
|
|
|
|
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpNum);
|
|
|
|
|
JsonArray phexpIgnoreCase = JsonArray.create();
|
|
|
|
|
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values, new AtomicInteger(), phexpIgnoreCase);
|
|
|
|
|
JsonArray phexpEnum = JsonArray.create();
|
|
|
|
|
Expression expEnum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values, new AtomicInteger(), phexpEnum);
|
|
|
|
|
|
|
|
|
|
assertEquals(expected, exp.toString());
|
|
|
|
|
assertEquals(expectedNum, expNum.toString());
|
|
|
|
|
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
|
|
|
|
assertEquals(expectedEnum, expEnum.toString());
|
|
|
|
|
assertEquals(JsonArray.create().add("a"), phexp);
|
|
|
|
|
assertEquals(JsonArray.create().add(1), phexpNum);
|
|
|
|
|
assertEquals(JsonArray.create().add("b"), phexpIgnoreCase);
|
|
|
|
|
assertEquals(JsonArray.create().add("TEST"), phexpEnum);
|
|
|
|
|
}
|
|
|
|
|
}
|