Index: trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java
===================================================================
--- trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java	(revision 29)
+++ trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java	(revision 30)
@@ -18,4 +18,5 @@
 package com.fmguler.ven.sample;
 
+import com.fmguler.ven.Criteria;
 import com.fmguler.ven.LiquibaseUtil;
 import com.fmguler.ven.Ven;
@@ -43,4 +44,8 @@
         //list the objects
         testList();
+        //list the objects by some criteria string
+        testListByCriteriaString();
+        //list the objects by some typed criteria
+        testListByCriteriaObject();
         //delete an object
         testDelete();
@@ -112,5 +117,5 @@
         joins.add("SomeDomainObject.anotherDomainObject");
         List objList = ven.list(SomeDomainObject.class, joins);
-        
+
         Iterator it = objList.iterator();
         while (it.hasNext()) {
@@ -121,10 +126,57 @@
 
     /**
-     * Test list the collection of objects by some criteria
+     * Test list the collection of objects by some criteria (string)
      */
-    public static void testListByCriteria() {
+    public static void testListByCriteriaString() {
         Ven ven = getVen();
-        //List objList = ven.list(SomeDomainObject.class/*, criteria */);
-        //System.out.println(objList);
+
+        //these objects will be included
+        Set joins = new HashSet();
+        joins.add("SomeDomainObject.anotherDomainObjects");
+        joins.add("SomeDomainObject.anotherDomainObject");
+
+        //the results will be filtered according to this criteria
+        Criteria criteria = new Criteria() //criteria object
+                //.param("and SomeDomainObject.name like :p1").param("p1", "s%")
+                .add("and SomeDomainObject.anotherDomainObjects.name like :p2").param("p2", "a%");
+
+
+        //list with includes and criteria
+        List objList = ven.list(SomeDomainObject.class, joins, criteria);
+
+        //print the results
+        Iterator it = objList.iterator();
+        while (it.hasNext()) {
+            SomeDomainObject someDomainObject = (SomeDomainObject)it.next();
+            System.out.println(someDomainObject);
+        }
+    }
+
+    /**
+     * Test list the collection of objects by some criteria (object)
+     */
+    public static void testListByCriteriaObject() {
+        Ven ven = getVen();
+
+        //these objects will be included
+        Set joins = new HashSet();
+        joins.add("SomeDomainObject.anotherDomainObjects");
+        joins.add("SomeDomainObject.anotherDomainObject");
+
+        //the results will be filtered according to this criteria
+        Criteria criteria = new Criteria() //criteria object
+                .like("SomeDomainObject.anotherDomainObjects.name", "a%") //attribute like value
+                .eq("SomeDomainObject.name", "sdo1") //attribute equals value
+                .and(); //connects previous criteria with and
+
+        //list with includes and criteria
+        List objList = ven.list(SomeDomainObject.class, joins, criteria);
+
+        //print the results
+        Iterator it = objList.iterator();
+        while (it.hasNext()) {
+            SomeDomainObject someDomainObject = (SomeDomainObject)it.next();
+            System.out.println(someDomainObject);
+        }
     }
 
