Merge branch 'master' into testrefactor

This commit is contained in:
Michael Suzuki
2016-06-21 10:03:25 +01:00
2 changed files with 730 additions and 84 deletions

View File

@@ -88,9 +88,21 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
{
private static long id = 0;
private static int orderTextCount = 0;
protected static String testNodeRef;
protected static String testBaseFolderNodeRef;
protected static String testfolder00NodeRef;
protected static NodeRef testRootNodeRef;
protected static NodeRef testNodeRef;
protected static NodeRef testBaseFolderNodeRef;
protected static NodeRef testFolder00NodeRef;
protected static NodeRef testCMISContent00NodeRef;
protected static NodeRef testCMISRootNodeRef;
protected static NodeRef testCMISBaseFolderNodeRef;
protected static NodeRef testCMISFolder00NodeRef;
protected static QName testCMISBaseFolderQName;
protected static QName testCMISFolder00QName;
protected static Date testCMISDate00;
private static Date orderDate = new Date();
protected static final String TEST_NAMESPACE = "http://www.alfresco.org/test/solrtest";
@@ -120,6 +132,62 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
protected static QName testAspect = QName.createQName(TEST_NAMESPACE, "testAspect");
private static final String CMIS_TEST_NAMESPACE = "http://www.alfresco.org/test/cmis-query-test";
protected static QName extendedContent = QName.createQName(CMIS_TEST_NAMESPACE, "extendedContent");
protected static QName singleTextBoth = QName.createQName(CMIS_TEST_NAMESPACE, "singleTextBoth");
protected static QName singleTextUntokenised = QName.createQName(CMIS_TEST_NAMESPACE, "singleTextUntokenised");
protected static QName singleTextTokenised = QName.createQName(CMIS_TEST_NAMESPACE, "singleTextTokenised");
protected static QName multipleTextBoth = QName.createQName(CMIS_TEST_NAMESPACE, "multipleTextBoth");
protected static QName multipleTextUntokenised = QName.createQName(CMIS_TEST_NAMESPACE, "multipleTextUntokenised");
protected static QName multipleTextTokenised = QName.createQName(CMIS_TEST_NAMESPACE, "multipleTextTokenised");
protected static QName singleMLTextBoth = QName.createQName(CMIS_TEST_NAMESPACE, "singleMLTextBoth");
protected static QName singleMLTextUntokenised = QName.createQName(CMIS_TEST_NAMESPACE, "singleMLTextUntokenised");
protected static QName singleMLTextTokenised = QName.createQName(CMIS_TEST_NAMESPACE, "singleMLTextTokenised");
protected static QName multipleMLTextBoth = QName.createQName(CMIS_TEST_NAMESPACE, "multipleMLTextBoth");
protected static QName multipleMLTextUntokenised = QName.createQName(CMIS_TEST_NAMESPACE, "multipleMLTextUntokenised");
protected static QName multipleMLTextTokenised = QName.createQName(CMIS_TEST_NAMESPACE, "multipleMLTextTokenised");
protected static QName singleFloat = QName.createQName(CMIS_TEST_NAMESPACE, "singleFloat");
protected static QName multipleFloat = QName.createQName(CMIS_TEST_NAMESPACE, "multipleFloat");
protected static QName singleDouble = QName.createQName(CMIS_TEST_NAMESPACE, "singleDouble");
protected static QName multipleDouble = QName.createQName(CMIS_TEST_NAMESPACE, "multipleDouble");
protected static QName singleInteger = QName.createQName(CMIS_TEST_NAMESPACE, "singleInteger");
protected static QName multipleInteger = QName.createQName(CMIS_TEST_NAMESPACE, "multipleInteger");
protected static QName singleLong = QName.createQName(CMIS_TEST_NAMESPACE, "singleLong");
protected static QName multipleLong = QName.createQName(CMIS_TEST_NAMESPACE, "multipleLong");
protected static QName singleBoolean = QName.createQName(CMIS_TEST_NAMESPACE, "singleBoolean");
protected static QName multipleBoolean = QName.createQName(CMIS_TEST_NAMESPACE, "multipleBoolean");
protected static QName singleDate = QName.createQName(CMIS_TEST_NAMESPACE, "singleDate");
protected static QName multipleDate = QName.createQName(CMIS_TEST_NAMESPACE, "multipleDate");
protected static QName singleDatetime = QName.createQName(CMIS_TEST_NAMESPACE, "singleDatetime");
protected static QName multipleDatetime = QName.createQName(CMIS_TEST_NAMESPACE, "multipleDatetime");
private static String[] orderNames = new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight",
"nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen" };
@@ -142,7 +210,7 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
protected AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance();
protected static AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance();
public static File HOME() {
@@ -569,6 +637,7 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance();
dataModel.setCMDefaultUri();
NodeRef rootNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testCMISRootNodeRef = rootNodeRef;
addStoreRoot(core, dataModel, rootNodeRef, 1, 1, 1, 1);
// Base
@@ -578,8 +647,9 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
// This variable is never used. What was it meant to be used for?
HashMap<QName, String> baseFolderContent = new HashMap<QName, String>();
NodeRef baseFolderNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testBaseFolderNodeRef = baseFolderNodeRef.toString();
testCMISBaseFolderNodeRef = baseFolderNodeRef;
QName baseFolderQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "baseFolder");
testCMISBaseFolderQName = baseFolderQName;
ChildAssociationRef n01CAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef,
baseFolderQName, baseFolderNodeRef, true, 0);
addNode(core, dataModel, 1, 2, 1, ContentModel.TYPE_FOLDER, null, baseFolderProperties, null, "andy",
@@ -592,8 +662,9 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
folder00Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 0"));
HashMap<QName, String> folder00Content = new HashMap<QName, String>();
NodeRef folder00NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testfolder00NodeRef = folder00NodeRef.toString();
testCMISFolder00NodeRef = folder00NodeRef;
QName folder00QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 0");
testCMISFolder00QName = folder00QName;
ChildAssociationRef folder00CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, baseFolderNodeRef,
folder00QName, folder00NodeRef, true, 0);
addNode(core, dataModel, 1, 3, 1, ContentModel.TYPE_FOLDER, null, folder00Properties, null, "andy",
@@ -766,6 +837,8 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
content00Properties.put(ContentModel.PROP_VERSION_LABEL, new StringPropertyValue("1.0"));
content00Properties.put(ContentModel.PROP_OWNER, new StringPropertyValue("andy"));
Date date00 = new Date();
testCMISDate00 = date00;
content00Properties.put(ContentModel.PROP_CREATED,
new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date00)));
content00Properties.put(ContentModel.PROP_MODIFIED,
@@ -777,6 +850,7 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
+ " as at be but by for if in into is it no not of on or such that the their then there these they this to was will with: "
+ " and random charcters \u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF score");
NodeRef content00NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testCMISContent00NodeRef = content00NodeRef;
QName content00QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Alfresco Tutorial");
ChildAssociationRef content00CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder00NodeRef,
content00QName, content00NodeRef, true, 0);
@@ -1139,6 +1213,105 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
true);
}
protected static void addTypeTestData(NodeRef folder00NodeRef,
NodeRef rootNodeRef,
NodeRef baseFolderNodeRef,
Object baseFolderQName,
Object folder00QName,
Date date1)
throws IOException
{
HashMap<QName, PropertyValue> content00Properties = new HashMap<QName, PropertyValue>();
MLTextPropertyValue desc00 = new MLTextPropertyValue();
desc00.addValue(Locale.ENGLISH, "Test One");
desc00.addValue(Locale.US, "Test 1");
content00Properties.put(ContentModel.PROP_DESCRIPTION, desc00);
content00Properties.put(ContentModel.PROP_TITLE, desc00);
content00Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Test One"));
content00Properties.put(ContentModel.PROP_CREATED,
new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date1)));
StringPropertyValue single = new StringPropertyValue("Un tokenised");
content00Properties.put(singleTextUntokenised, single);
content00Properties.put(singleTextTokenised, single);
content00Properties.put(singleTextBoth, single);
MultiPropertyValue multi = new MultiPropertyValue();
multi.addValue(single);
multi.addValue(new StringPropertyValue("two parts"));
content00Properties.put(multipleTextUntokenised, multi);
content00Properties.put(multipleTextTokenised, multi);
content00Properties.put(multipleTextBoth, multi);
content00Properties.put(singleMLTextUntokenised, makeMLText());
content00Properties.put(singleMLTextTokenised, makeMLText());
content00Properties.put(singleMLTextBoth, makeMLText());
content00Properties.put(multipleMLTextUntokenised, makeMLTextMVP());
content00Properties.put(multipleMLTextTokenised, makeMLTextMVP());
content00Properties.put(multipleMLTextBoth, makeMLTextMVP());
StringPropertyValue one = new StringPropertyValue("1");
StringPropertyValue two = new StringPropertyValue("2");
MultiPropertyValue multiDec = new MultiPropertyValue();
multiDec.addValue(one);
multiDec.addValue(new StringPropertyValue("1.1"));
content00Properties.put(singleFloat, one);
content00Properties.put(multipleFloat, multiDec);
content00Properties.put(singleDouble, one);
content00Properties.put(multipleDouble, multiDec);
MultiPropertyValue multiInt = new MultiPropertyValue();
multiInt.addValue(one);
multiInt.addValue(two);
content00Properties.put(singleInteger, one);
content00Properties.put(multipleInteger, multiInt);
content00Properties.put(singleLong, one);
content00Properties.put(multipleLong, multiInt);
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date1);
cal.add(Calendar.DAY_OF_MONTH, -1);
Date date0 = cal.getTime();
cal.add(Calendar.DAY_OF_MONTH, 2);
Date date2 = cal.getTime();
StringPropertyValue d0 = new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date0));
StringPropertyValue d1 = new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date1));
StringPropertyValue d2 = new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date2));
MultiPropertyValue multiDate = new MultiPropertyValue();
multiDate.addValue(d1);
multiDate.addValue(d2);
content00Properties.put(singleDate, d1);
content00Properties.put(multipleDate, multiDate);
content00Properties.put(singleDatetime, d1);
content00Properties.put(multipleDatetime, multiDate);
StringPropertyValue bTrue = new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, true));
StringPropertyValue bFalse = new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, false));
MultiPropertyValue multiBool = new MultiPropertyValue();
multiBool.addValue(bTrue);
multiBool.addValue(bFalse);
content00Properties.put(singleBoolean, bTrue);
content00Properties.put(multipleBoolean, multiBool);
NodeRef content00NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
QName content00QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Test One");
ChildAssociationRef content00CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder00NodeRef,
content00QName, content00NodeRef, true, 0);
addNode(h.getCore(),
dataModel,
1,
100,
1,
extendedContent,
new QName[] { ContentModel.ASPECT_OWNABLE, ContentModel.ASPECT_TITLED },
content00Properties,
null,
"andy",
new ChildAssociationRef[] { content00CAR },
new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef },
new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + content00QName.toString() },
content00NodeRef,
true);
}
public static void loadTestSet() throws IOException {
// Root
SolrCore core = h.getCore();
@@ -1146,13 +1319,14 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
dataModel.setCMDefaultUri();
NodeRef rootNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testRootNodeRef = rootNodeRef;
addStoreRoot(core, dataModel, rootNodeRef, 1, 1, 1, 1);
// 1
NodeRef n01NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
testNodeRef = n01NodeRef.toString();
testNodeRef = n01NodeRef;
QName n01QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "one");
ChildAssociationRef n01CAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef, n01QName,
@@ -1834,7 +2008,7 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
}
Query query = dataModel.getLuceneQueryParser(searchParameters, solrQueryRequest, FTSQueryParser.RerankPhase.SINGLE_PASS).parse(queryString);
System.out.println("####### Query ######:"+query);
System.out.println("####### Query ######:" + query);
TopDocs docs = solrIndexSearcher.search(query, count * 2 + 10);
if (count != null)
@@ -1863,4 +2037,41 @@ public class AlfrescoSolrTestCaseJ4 extends SolrTestCaseJ4 implements SolrTestFi
return queryString.replace("\uFFFF", "<Unicode FFFF>");
}
}
protected static MLTextPropertyValue makeMLText()
{
return makeMLText(0);
}
protected static MLTextPropertyValue makeMLText(int position)
{
MLTextPropertyValue ml = new MLTextPropertyValue();
ml.addValue(Locale.ENGLISH, mlOrderable_en[position]);
ml.addValue(Locale.FRENCH, mlOrderable_fr[position]);
return ml;
}
protected static MultiPropertyValue makeMLTextMVP()
{
return makeMLTextMVP(0);
}
protected static MultiPropertyValue makeMLTextMVP(int position)
{
MLTextPropertyValue m1 = new MLTextPropertyValue();
m1.addValue(Locale.ENGLISH, mlOrderable_en[position]);
MLTextPropertyValue m2 = new MLTextPropertyValue();
m2.addValue(Locale.FRENCH, mlOrderable_fr[position]);
MultiPropertyValue answer = new MultiPropertyValue();
answer.addValue(m1);
answer.addValue(m2);
return answer;
}
private static String[] mlOrderable_en = new String[] { "AAAA BBBB", "EEEE FFFF", "II", "KK", "MM", "OO", "QQ",
"SS", "UU", "AA", "CC" };
private static String[] mlOrderable_fr = new String[] { "CCCC DDDD", "GGGG HHHH", "JJ", "LL", "NN", "PP", "RR",
"TT", "VV", "BB", "DD" };
}

View File

@@ -47,19 +47,19 @@ public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests imp
/************** Test CMIS Parent ID ***********************/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q", "SELECT cmis:parentId FROM cmis:folder WHERE cmis:parentId = '"
+ testBaseFolderNodeRef + "'"), null),
+ testCMISBaseFolderNodeRef + "'"), null),
"*[count(//doc)=4]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q", "SELECT cmis:parentId FROM cmis:folder WHERE cmis:parentId <> '"
+ testBaseFolderNodeRef + "'"), null),
+ testCMISBaseFolderNodeRef + "'"), null),
"*[count(//doc)=7]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q", "SELECT cmis:parentId FROM cmis:folder WHERE cmis:parentId IN ('"
+ testBaseFolderNodeRef + "')"), null),
+ testCMISBaseFolderNodeRef + "')"), null),
"*[count(//doc)=4]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q", "SELECT cmis:parentId FROM cmis:folder WHERE cmis:parentId NOT IN ('"
+ testBaseFolderNodeRef + "')"), null),
+ testCMISBaseFolderNodeRef + "')"), null),
"*[count(//doc)=7]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q", "SELECT cmis:parentId FROM cmis:folder WHERE cmis:parentId IS NOT NULL"), null),
@@ -464,90 +464,118 @@ public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests imp
/************** checkCmisObjecId ***********************/
/*
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId = '"
+ folderId + "'", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId <> '"
+ folderId + "'", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId = '"
+ testCMISFolder00NodeRef + "'"), null),
"*[count(//doc)=1]");
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IN ('"
+ folderId + "')", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId NOT IN('"
+ folderId + "')", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId <> '"
+ testCMISFolder00NodeRef + "'"), null),
"*[count(//doc)=10]");
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE IN_FOLDER('" + folderId
+ "')", 2, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE IN_TREE ('" + folderId
+ "')", 6, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IS NOT NULL", 11, null, null, null,
null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IS NULL", 0, null, null, null, null,
null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IN ('"
+ testCMISFolder00NodeRef + "')"), null),
"*[count(//doc)=1]");
// ignore folder versions
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId NOT IN('"
+ testCMISFolder00NodeRef + "')"), null),
"*[count(//doc)=10]");
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId = '"
+ folderId + ";1.0'", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId <> '"
+ folderId + ";1.0'", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE IN_FOLDER('" + testCMISFolder00NodeRef + "')"), null),
"*[count(//doc)=2]");
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IN ('"
+ folderId + ";1.0')", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId NOT IN('"
+ folderId + ";1.0')", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE IN_TREE ('" + testCMISFolder00NodeRef+ "')"), null),
"*[count(//doc)=6]");
// testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE IN_FOLDER('" +
// folderId + ";1.0')", 2, null, null, null, null, null, (String) null);
// testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:folder WHERE IN_TREE ('" +
// folderId + ";1.0')", 6, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IS NOT NULL"), null),
"*[count(//doc)=11]");
// Docs
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IS NULL"), null),
"*[count(//doc)=0]");
String id = docId;
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId = '"
+ testCMISFolder00NodeRef + ";1.0'"), null),
"*[count(//doc)=1]");
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId = '"
+ id + "'", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId <> '"
+ id + "'", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId <> '"
+ testCMISFolder00NodeRef + ";1.0'"), null),
"*[count(//doc)=10]");
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IN ('" + id + "')", 1, null, null,
null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId NOT IN('" + id + "')", 10, null,
null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId IN ('"
+ testCMISFolder00NodeRef + ";1.0')"), null),
"*[count(//doc)=1]");
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NOT NULL", 11, null, null, null,
null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NULL", 0, null, null, null,
null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:folder WHERE cmis:objectId NOT IN('"
+ testCMISFolder00NodeRef + ";1.0')"), null),
"*[count(//doc)=10]");
id = docId + ";1.0";
String id = testCMISContent00NodeRef.toString();
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId = '"
+ id + "'", 1, null, null, null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis", "SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId <> '"
+ id + "'", 10, null, null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId = '"
+ id + "'"), null),
"*[count(//doc)=1]");
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IN ('" + id + "')", 1, null, null,
null, null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId NOT IN('" + id + "')", 10, null,
null, null, null, null, (String) null);
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId <> '"
+ id + "'"), null),
"*[count(//doc)=10]");
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NOT NULL", 11, null, null, null,
null, null, (String) null);
testQueryByHandler(report, core, "/cmis",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NULL", 0, null, null, null,
null, null, (String) null);
*/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IN ('" + id + "')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId NOT IN('" + id + "')"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NOT NULL"), null),
"*[count(//doc)=11]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NULL"), null),
"*[count(//doc)=0]");
id = testCMISContent00NodeRef + ";1.0";
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId = '"
+ id + "'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId <> '"
+ id + "'"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IN ('" + id + "')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId NOT IN('" + id + "')"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NOT NULL"), null),
"*[count(//doc)=11]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:objectId FROM cmis:document WHERE cmis:objectId IS NULL"), null),
"*[count(//doc)=0]");
/************** checkCmisTextPredicates ***********************/
@@ -692,16 +720,16 @@ public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests imp
/********** checkInTree ***************************/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:folder WHERE IN_TREE('" + testfolder00NodeRef + "')"), null),
"SELECT * FROM cmis:folder WHERE IN_TREE('" + testCMISFolder00NodeRef + "')"), null),
"*[count(//doc)=6]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:folder F WHERE IN_TREE(F, '" + testfolder00NodeRef + "')"), null),
"SELECT * FROM cmis:folder F WHERE IN_TREE(F, '" + testCMISFolder00NodeRef + "')"), null),
"*[count(//doc)=6]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT D.*, O.* FROM cmis:document AS D JOIN cm:ownable AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_TREE(D, '"
+ testBaseFolderNodeRef + "')"), null),
+ testCMISBaseFolderNodeRef + "')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
@@ -898,6 +926,40 @@ public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests imp
"select o.*, t.* from ( cm:ownable o join cm:titled t on o.cmis:objectId = t.cmis:objectId JOIN cmis:document AS D ON D.cmis:objectId = o.cmis:objectId ) where o.cm:owner = 'andy' and t.cm:title = 'Alfresco tutorial' and CONTAINS(D, 'jumped') and D.cmis:contentStreamLength <> 2"), null),
"*[count(//doc)=1]");
/********* check FTS *************/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT SCORE()as ONE, SCORE()as TWO, D.* FROM cmis:document D WHERE CONTAINS('\\'zebra\\'')"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document WHERE CONTAINS('\\'zebra\\'')"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document WHERE CONTAINS('\\'quick\\'')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document WHERE CONTAINS('\\'quick\\'')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document D WHERE CONTAINS(D, 'cmis:name:\\'Tutorial\\'')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmis:name as BOO FROM cmis:document D WHERE CONTAINS('BOO:\\'Tutorial\\'')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document D WHERE CONTAINS('TEXT:\\'zebra\\'')"), null),
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document D WHERE CONTAINS('d:content:\\'zebra\\'')"), null),
"*[count(//doc)=10]");
/******* checkFTSConnectives ********/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
@@ -921,10 +983,383 @@ public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests imp
"*[count(//doc)=10]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document where contains('\\'two\\' \\'zebra\\'')"), null),
"SELECT * FROM cmis:document where contains('\\'two\\' \\'zebra\\'')"), null),
"*[count(//doc)=1]");
/******** Load record ************/
addTypeTestData(testCMISFolder00NodeRef,
testCMISRootNodeRef,
testCMISBaseFolderNodeRef,
testCMISBaseFolderQName,
testCMISFolder00QName,
testCMISDate00);
/******* check_D_text *******/
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmis:document"), null),
"*[count(//doc)=12]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth = 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth <> 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth LIKE 'U_ to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth NOT LIKE 't__eni%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth < 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth < 'Un tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth < 'V'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth < 'U'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth <= 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth <= 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth <= 'V'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth <= 'U'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth > 'tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth > 'Un tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth > 'V'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth > 'U'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth >= 'tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth >= 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth >= 'V'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextBoth >= 'U'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised = 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised <> 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised LIKE 'U_ to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised NOT LIKE 't__eni%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised < 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised < 'Un tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised < 'V'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised < 'U'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised <= 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised <= 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised <= 'V'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised <= 'U'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised > 'tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised > 'Un tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised > 'V'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised > 'U'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised >= 'tokenised'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised >= 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised >= 'V'"), null),
"*[count(//doc)=0]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextUntokenised >= 'U'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised = 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised <> 'tokenized'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised LIKE 'to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised NOT LIKE 'Ut__eniz%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised IN ('tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE cmistest:singleTextTokenised NOT IN ('tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias = 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias <> 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias LIKE 'U_ to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias NOT LIKE 't__eni%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextBoth as alias FROM cmistest:extendedContent as T WHERE alias NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias = 'Un tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias <> 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias LIKE 'U_ to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias NOT LIKE 't__eni%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:singleTextUntokenised as alias FROM cmistest:extendedContent as T WHERE alias NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias = 'tokenised'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias <> 'tokenized'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias LIKE 'to%sed'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias NOT LIKE 'Ut__eniz%'"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias IN ('tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:singleTextTokenised as alias FROM cmistest:extendedContent WHERE alias NOT IN ('tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE 'Un tokenised' = ANY cmistest:multipleTextBoth "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextBoth IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextBoth NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE 'Un tokenised' = ANY cmistest:multipleTextUntokenised "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextUntokenised IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextUntokenised NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE 'tokenised' = ANY cmistest:multipleTextTokenised "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextTokenised IN ('tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT * FROM cmistest:extendedContent WHERE ANY cmistest:multipleTextTokenised NOT IN ('tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextBoth as alias FROM cmistest:extendedContent WHERE 'Un tokenised' = ANY alias "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextBoth as alias FROM cmistest:extendedContent WHERE ANY alias IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextBoth as alias FROM cmistest:extendedContent WHERE ANY alias NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextUntokenised alias FROM cmistest:extendedContent WHERE 'Un tokenised' = ANY alias "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextUntokenised alias FROM cmistest:extendedContent WHERE ANY alias IN ('Un tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT cmistest:multipleTextUntokenised alias FROM cmistest:extendedContent WHERE ANY alias NOT IN ('Un tokenized')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:multipleTextTokenised alias FROM cmistest:extendedContent T WHERE 'tokenised' = ANY alias "), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:multipleTextTokenised alias FROM cmistest:extendedContent T WHERE ANY alias IN ('tokenised', 'Monkey')"), null),
"*[count(//doc)=1]");
assertQ(areq(params("rows", "20", "qt", "/cmis", "q",
"SELECT T.cmistest:multipleTextTokenised alias FROM cmistest:extendedContent T WHERE ANY alias NOT IN ('tokenized')"), null),
"*[count(//doc)=1]");
}