Author: sdumitriu
Date: 2008-02-15 01:51:12 +0100 (Fri, 15 Feb 2008)
New Revision: 7740
Modified:
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBListClassTest.java
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBTreeListClassTest.java
Log:
XWIKI-2083: Improve the way DBList and DBTreeList generate queries
Added more unit tests.
Modified:
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBListClassTest.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBListClassTest.java
2008-02-15 00:50:47 UTC (rev 7739)
+++
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBListClassTest.java
2008-02-15 00:51:12 UTC (rev 7740)
@@ -34,9 +34,6 @@
*/
public class DBListClassTest extends TestCase
{
- private static final String DEFAULT_QUERY =
- "select doc.name from XWikiDocument doc where 1 = 0";
-
private XWikiContext context;
protected void setUp() throws Exception
@@ -52,7 +49,7 @@
{
DBListClass dblc = new DBListClass();
assertEquals("", dblc.getSql());
- assertEquals(DEFAULT_QUERY, dblc.getQuery(context));
+ assertEquals("select doc.name from XWikiDocument doc where 1 = 0",
dblc.getQuery(context));
}
public void testGetQueryWithSqlScriptSpecified()
@@ -105,17 +102,18 @@
DBListClass dblc = new DBListClass();
dblc.setClassname("XWiki.XWikiUsers");
dblc.setIdField("doc.name");
- assertEquals(
- "select distinct doc.name from XWikiDocument as doc, BaseObject as
obj where doc.fullName=obj.name and obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct doc.name from XWikiDocument as doc,
BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dblc
+ .getQuery(context));
dblc.setIdField("obj.className");
- assertEquals(
- "select distinct obj.className from BaseObject as obj where
obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className from BaseObject as obj"
+ + " where obj.className='XWiki.XWikiUsers'",
dblc.getQuery(context));
dblc.setIdField("property");
assertEquals(
- "select distinct idprop.value from BaseObject as obj,
StringProperty as idprop where obj.className='XWiki.XWikiUsers' and
obj.id=idprop.id.id and idprop.id.name='property'",
- dblc.getQuery(context));
+ "select distinct idprop.value from BaseObject as obj,
StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dblc
+ .getQuery(context));
}
public void testGetQueryWithIdAndValueSpecified()
@@ -129,17 +127,17 @@
.getQuery(context));
dblc.setValueField("obj.className");
assertEquals(
- "select distinct doc.name, obj.className from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name",
- dblc.getQuery(context));
+ "select distinct doc.name, obj.className from XWikiDocument as
doc, BaseObject as obj"
+ + " where doc.fullName=obj.name", dblc.getQuery(context));
dblc.setValueField("property");
assertEquals("select distinct doc.name, doc.property from
XWikiDocument as doc", dblc
.getQuery(context));
dblc.setIdField("obj.className");
dblc.setValueField("doc.name");
- assertEquals(
- "select distinct obj.className, doc.name from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dblc
+ .getQuery(context));
dblc.setValueField("obj.className");
assertEquals("select distinct obj.className from BaseObject as obj",
dblc
.getQuery(context));
@@ -147,18 +145,18 @@
assertEquals("select distinct obj.className, obj.id from BaseObject as
obj", dblc
.getQuery(context));
dblc.setValueField("property");
- assertEquals(
- "select distinct obj.className, doc.property from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className, doc.property"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dblc
+ .getQuery(context));
dblc.setIdField("property");
dblc.setValueField("doc.name");
assertEquals("select distinct doc.property, doc.name from
XWikiDocument as doc", dblc
.getQuery(context));
dblc.setValueField("obj.className");
- assertEquals(
- "select distinct doc.property, obj.className from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name",
- dblc.getQuery(context));
+ assertEquals("select distinct doc.property, obj.className"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dblc
+ .getQuery(context));
dblc.setValueField("property");
assertEquals("select distinct doc.property from XWikiDocument as doc",
dblc
.getQuery(context));
@@ -173,56 +171,67 @@
dblc.setClassname("XWiki.XWikiUsers");
dblc.setIdField("doc.name");
dblc.setValueField("doc.name");
- assertEquals(
- "select distinct doc.name from XWikiDocument as doc, BaseObject as
obj where doc.fullName=obj.name and obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct doc.name from XWikiDocument as doc,
BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dblc
+ .getQuery(context));
dblc.setValueField("doc.creator");
assertEquals(
- "select distinct doc.name, doc.creator from XWikiDocument as doc,
BaseObject as obj where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ "select distinct doc.name, doc.creator from XWikiDocument as doc,
BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dblc
+ .getQuery(context));
dblc.setValueField("obj.className");
assertEquals(
- "select distinct doc.name, obj.className from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ "select distinct doc.name, obj.className from XWikiDocument as
doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dblc
+ .getQuery(context));
dblc.setValueField("property");
- assertEquals(
- "select distinct doc.name, valueprop.value from XWikiDocument as
doc, BaseObject as obj, StringProperty as valueprop where doc.fullName=obj.name
and obj.className='XWiki.XWikiUsers' and obj.id=valueprop.id.id and
valueprop.id.name='property'",
- dblc.getQuery(context));
+ assertEquals("select distinct doc.name, valueprop.value"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as valueprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='property'",
dblc
+ .getQuery(context));
dblc.setIdField("obj.className");
dblc.setValueField("doc.name");
- assertEquals(
- "select distinct obj.className, doc.name from XWikiDocument as
doc, BaseObject as obj where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dblc
+ .getQuery(context));
dblc.setValueField("obj.className");
- assertEquals(
- "select distinct obj.className from BaseObject as obj where
obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className from BaseObject as obj"
+ + " where obj.className='XWiki.XWikiUsers'",
dblc.getQuery(context));
dblc.setValueField("obj.id");
- assertEquals(
- "select distinct obj.className, obj.id from BaseObject as obj
where obj.className='XWiki.XWikiUsers'",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className, obj.id from BaseObject as
obj"
+ + " where obj.className='XWiki.XWikiUsers'",
dblc.getQuery(context));
dblc.setValueField("property");
- assertEquals(
- "select distinct obj.className, valueprop.value from BaseObject as
obj, StringProperty as valueprop where obj.className='XWiki.XWikiUsers' and
obj.id=valueprop.id.id and valueprop.id.name='property'",
- dblc.getQuery(context));
+ assertEquals("select distinct obj.className, valueprop.value"
+ + " from BaseObject as obj, StringProperty as valueprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='property'",
dblc
+ .getQuery(context));
dblc.setIdField("property");
dblc.setValueField("doc.name");
- assertEquals(
- "select distinct idprop.value, doc.name from XWikiDocument as doc,
BaseObject as obj, StringProperty as idprop where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers' and obj.id=idprop.id.id and
idprop.id.name='property'",
- dblc.getQuery(context));
+ assertEquals("select distinct idprop.value, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as idprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dblc.getQuery(context));
dblc.setValueField("obj.className");
- assertEquals(
- "select distinct idprop.value, obj.className from BaseObject as
obj, StringProperty as idprop where obj.className='XWiki.XWikiUsers' and
obj.id=idprop.id.id and idprop.id.name='property'",
- dblc.getQuery(context));
+ assertEquals("select distinct idprop.value, obj.className"
+ + " from BaseObject as obj, StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dblc.getQuery(context));
dblc.setValueField("property");
- assertEquals(
- "select distinct idprop.value from BaseObject as obj,
StringProperty as idprop where obj.className='XWiki.XWikiUsers' and
obj.id=idprop.id.id and idprop.id.name='property'",
- dblc.getQuery(context));
+ assertEquals("select distinct idprop.value"
+ + " from BaseObject as obj, StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dblc.getQuery(context));
dblc.setValueField("otherProperty");
- assertEquals(
- "select distinct idprop.value, valueprop.value from BaseObject as
obj, StringProperty as idprop, StringProperty as valueprop where
obj.className='XWiki.XWikiUsers' and obj.id=idprop.id.id and
idprop.id.name='property' and obj.id=valueprop.id.id and
valueprop.id.name='otherProperty'",
- dblc.getQuery(context));
+ assertEquals("select distinct idprop.value, valueprop.value"
+ + " from BaseObject as obj, StringProperty as idprop,
StringProperty as valueprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'"
+ + " and obj.id=valueprop.id.id and
valueprop.id.name='otherProperty'", dblc
+ .getQuery(context));
}
}
Modified:
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBTreeListClassTest.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBTreeListClassTest.java
2008-02-15 00:50:47 UTC (rev 7739)
+++
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/objects/classes/DBTreeListClassTest.java
2008-02-15 00:51:12 UTC (rev 7740)
@@ -20,16 +20,17 @@
*/
package com.xpn.xwiki.objects.classes;
+import junit.framework.TestCase;
+
+import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.XWikiConfig;
import com.xpn.xwiki.XWikiContext;
-import com.xpn.xwiki.XWikiConfig;
-import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.store.XWikiHibernateStore;
-import com.xpn.xwiki.doc.XWikiDocument;
-import junit.framework.TestCase;
/**
* Unit tests for [EMAIL PROTECTED]
com.xpn.xwiki.objects.classes.DBTreeListClass}.
- *
+ *
* @version $Id: $
*/
public class DBTreeListClassTest extends TestCase
@@ -41,15 +42,346 @@
this.context = new XWikiContext();
this.context.setDoc(new XWikiDocument());
XWikiHibernateStore store = new XWikiHibernateStore("dummy");
- XWiki xwiki = new XWiki(new XWikiConfig(), context);
+ XWiki xwiki = new XWiki(new XWikiConfig(), context);
xwiki.setStore(store);
}
public void testGetQueryWhenNoSQLSCriptSpecified()
{
DBTreeListClass dbtlc = new DBTreeListClass();
- assertEquals("select idprop.value, idprop.value, idprop.value from
XWikiDocument as doc, "
- + "BaseObject as obj, StringProperty as idprop where
doc.fullName=obj.name and obj.className='' and "
- + "obj.id=idprop.id.id and idprop.id.name=''",
dbtlc.getQuery(this.context));
+ assertEquals("select doc.name from XWikiDocument doc where 1 = 0",
dbtlc
+ .getQuery(this.context));
}
-}
\ No newline at end of file
+
+ public void testGetQueryWithSqlScriptSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ assertEquals("", dbtlc.getSql());
+ String sql = "select doc.name, doc.title, doc.creator from
XWikiDocument as doc";
+ dbtlc.setSql(sql);
+ assertEquals(sql, dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithClassSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ assertEquals("select distinct doc.fullName, doc.fullName, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ }
+
+ public void testGetQueryWithClassAndParentSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ dbtlc.setParentField("obj.id");
+ assertEquals("select distinct doc.fullName, doc.fullName, obj.id"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ }
+
+ public void testGetQueryWithIdSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setIdField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.parent from
XWikiDocument as doc",
+ dbtlc.getQuery(context));
+ dbtlc.setIdField("obj.className");
+ assertEquals("select distinct obj.className, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj" + " where
doc.fullName=obj.name",
+ dbtlc.getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct doc.property, doc.property, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithIdAndParentSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setIdField("doc.name");
+ dbtlc.setParentField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.name from
XWikiDocument as doc",
+ dbtlc.getQuery(context));
+ dbtlc.setParentField("obj.className");
+ assertEquals("select distinct doc.name, doc.name, obj.className"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setParentField("property");
+ assertEquals(
+ "select distinct doc.name, doc.name, doc.property from
XWikiDocument as doc", dbtlc
+ .getQuery(context));
+
+ dbtlc.setIdField("obj.className");
+ dbtlc.setParentField("doc.name");
+ assertEquals("select distinct obj.className, obj.className, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setParentField("obj.className");
+ assertEquals("select distinct obj.className, obj.className,
obj.className"
+ + " from BaseObject as obj", dbtlc.getQuery(context));
+ dbtlc.setParentField("property");
+ assertEquals("select distinct obj.className, obj.className,
doc.property"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+
+ dbtlc.setIdField("property");
+ dbtlc.setParentField("doc.name");
+ assertEquals("select distinct doc.property, doc.property, doc.name"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setParentField("obj.className");
+ assertEquals("select distinct doc.property, doc.property,
obj.className"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setParentField("property");
+ assertEquals("select distinct doc.property, doc.property, doc.property"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setParentField("property2");
+ assertEquals("select distinct doc.property, doc.property,
doc.property2"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithValueSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setValueField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.parent from
XWikiDocument as doc",
+ dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithIdAndClassnameSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ dbtlc.setIdField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("obj.className");
+ assertEquals("select distinct obj.className, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct idprop.value, idprop.value, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as idprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithIdParentAndClassnameSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ dbtlc.setParentField("doc.name");
+ dbtlc.setIdField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("obj.className");
+ assertEquals("select distinct obj.className, obj.className, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct idprop.value, idprop.value, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as idprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dbtlc.getQuery(context));
+
+ dbtlc.setParentField("obj.className");
+ dbtlc.setIdField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, obj.className"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("obj.className");
+ assertEquals("select distinct obj.className, obj.className,
obj.className"
+ + " from BaseObject as obj where
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct idprop.value, idprop.value,
obj.className"
+ + " from BaseObject as obj, StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dbtlc.getQuery(context));
+
+ dbtlc.setParentField("property");
+ dbtlc.setIdField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, parentprop.value"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as parentprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=parentprop.id.id and
parentprop.id.name='property'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("obj.className");
+ assertEquals("select distinct obj.className, obj.className,
parentprop.value"
+ + " from BaseObject as obj, StringProperty as parentprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=parentprop.id.id and
parentprop.id.name='property'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct idprop.value, idprop.value, idprop.value"
+ + " from BaseObject as obj, StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dbtlc.getQuery(context));
+ dbtlc.setIdField("property2");
+ assertEquals("select distinct idprop.value, idprop.value,
parentprop.value"
+ + " from BaseObject as obj, StringProperty as idprop,
StringProperty as parentprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property2'"
+ + " and obj.id=parentprop.id.id and
parentprop.id.name='property'", dbtlc
+ .getQuery(context));
+ }
+
+ public void testGetQueryWithIdAndValueSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setIdField("doc.name");
+ dbtlc.setValueField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setValueField("doc.creator");
+ assertEquals("select distinct doc.name, doc.creator, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setValueField("obj.className");
+ assertEquals("select distinct doc.name, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("property");
+ assertEquals("select distinct doc.name, doc.property, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+
+ dbtlc.setIdField("obj.className");
+ dbtlc.setValueField("doc.name");
+ assertEquals("select distinct obj.className, doc.name, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("obj.className");
+ assertEquals("select distinct obj.className, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("obj.id");
+ assertEquals("select distinct obj.className, obj.id, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("property");
+ assertEquals("select distinct obj.className, doc.property, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+
+ dbtlc.setIdField("property");
+ dbtlc.setValueField("doc.name");
+ assertEquals("select distinct doc.property, doc.name, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setValueField("obj.className");
+ assertEquals("select distinct doc.property, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("property");
+ assertEquals("select distinct doc.property, doc.property, doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setValueField("otherProperty");
+ assertEquals("select distinct doc.property, doc.otherProperty,
doc.parent"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithIdValueAndParentSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setIdField("doc.name");
+ dbtlc.setValueField("doc.title");
+ dbtlc.setParentField("doc.web");
+ assertEquals("select distinct doc.name, doc.title, doc.web"
+ + " from XWikiDocument as doc", dbtlc.getQuery(context));
+ dbtlc.setValueField("obj.name");
+ assertEquals("select distinct doc.name, obj.name, doc.web"
+ + " from XWikiDocument as doc, BaseObject as obj where
doc.fullName=obj.name", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("obj.className");
+ dbtlc.setParentField("obj.id");
+ assertEquals("select distinct obj.className, obj.name, obj.id"
+ + " from BaseObject as obj", dbtlc.getQuery(context));
+ }
+
+ public void testGetQueryWithIdValueAndClassSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ dbtlc.setIdField("doc.name");
+ dbtlc.setValueField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("obj.className");
+ assertEquals("select distinct doc.name, obj.className, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setValueField("property");
+ assertEquals("select distinct doc.name, valueprop.value, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as valueprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='property'",
dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("property");
+ assertEquals("select distinct idprop.value, idprop.value, doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj, StringProperty
as idprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property'",
dbtlc.getQuery(context));
+ dbtlc.setIdField("property2");
+ assertEquals("select distinct idprop.value, valueprop.value,
doc.parent"
+ + " from XWikiDocument as doc, BaseObject as obj,"
+ + " StringProperty as idprop, StringProperty as valueprop"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='property2'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='property'",
dbtlc
+ .getQuery(context));
+ }
+
+ public void testGetQueryWithIdValueParentAndClassSpecified()
+ {
+ DBTreeListClass dbtlc = new DBTreeListClass();
+ dbtlc.setClassname("XWiki.XWikiUsers");
+ dbtlc.setIdField("doc.name");
+ dbtlc.setValueField("doc.name");
+ dbtlc.setParentField("doc.name");
+ assertEquals("select distinct doc.name, doc.name, doc.name"
+ + " from XWikiDocument as doc, BaseObject as obj"
+ + " where doc.fullName=obj.name and
obj.className='XWiki.XWikiUsers'", dbtlc
+ .getQuery(context));
+ dbtlc.setIdField("prop1");
+ dbtlc.setValueField("prop1");
+ dbtlc.setParentField("prop1");
+ assertEquals("select distinct idprop.value, idprop.value, idprop.value"
+ + " from BaseObject as obj, StringProperty as idprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='prop1'",
dbtlc.getQuery(context));
+ dbtlc.setValueField("prop2");
+ assertEquals("select distinct idprop.value, valueprop.value,
idprop.value"
+ + " from BaseObject as obj, StringProperty as idprop,
StringProperty as valueprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='prop1'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='prop2'",
dbtlc
+ .getQuery(context));
+ dbtlc.setParentField("prop2");
+ assertEquals("select distinct idprop.value, valueprop.value,
valueprop.value"
+ + " from BaseObject as obj, StringProperty as idprop,
StringProperty as valueprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='prop1'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='prop2'",
dbtlc
+ .getQuery(context));
+ dbtlc.setParentField("prop3");
+ assertEquals("select distinct idprop.value, valueprop.value,
parentprop.value"
+ + " from BaseObject as obj, StringProperty as idprop,"
+ + " StringProperty as valueprop, StringProperty as parentprop"
+ + " where obj.className='XWiki.XWikiUsers'"
+ + " and obj.id=idprop.id.id and idprop.id.name='prop1'"
+ + " and obj.id=valueprop.id.id and valueprop.id.name='prop2'"
+ + " and obj.id=parentprop.id.id and parentprop.id.name='prop3'",
dbtlc
+ .getQuery(context));
+ }
+}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications