meta query serialization and builders
diff --git a/src/test/java/CollectionQueryTreeTest.java b/src/test/java/CollectionQueryTreeTest.java
new file mode 100644
index 0000000..81f6eee
--- /dev/null
+++ b/src/test/java/CollectionQueryTreeTest.java
@@ -0,0 +1,85 @@
+import de.ids_mannheim.korap.query.serialize.CollectionQueryBuilder;
+import de.ids_mannheim.korap.query.serialize.CollectionQueryBuilder2;
+import de.ids_mannheim.korap.query.serialize.CollectionQueryTree;
+import de.ids_mannheim.korap.resource.Relation;
+import de.ids_mannheim.korap.util.QueryException;
+import de.ids_mannheim.korap.utils.JsonUtils;
+import de.ids_mannheim.korap.utils.TimeUtils;
+import org.junit.Test;
+
+public class CollectionQueryTreeTest {
+
+    CollectionQueryTree ef;
+    String map;
+    private String query;
+
+    private boolean equalsQueryContent(String res, String query) throws QueryException {
+        res = res.replaceAll(" ", "");
+        ef = new CollectionQueryTree();
+        ef.process(query);
+        String queryMap = ef.getRequestMap().get("query").toString().replaceAll(" ", "");
+        return res.equals(queryMap);
+    }
+
+    @Test
+    public void testSimple() throws QueryException {
+        query = "textClass=Sport";
+        String regex1 = "{@type=korap:filter, filter={@type=korap:term, attribute=textClass, key=Sport, match=match:eq}}";
+        ef = new CollectionQueryTree();
+        ef.process(query);
+        map = JsonUtils.toJSON(ef.getRequestMap());
+//		assertEquals(regex1.replaceAll(" ", ""), map.replaceAll(" ", ""));
+        System.out.println("THE QUERY: " + map);
+    }
+
+
+    @Test
+    public void testComplex() throws QueryException {
+        query = "(textClass=Sport | textClass=ausland) & corpusID=WPD";
+        String regex1 = "{@type=korap:filter, filter={@type=korap:term, attribute=textClass, key=Sport, match=match:eq}}";
+        ef = new CollectionQueryTree();
+        ef.process(query);
+        map = JsonUtils.toJSON(ef.getRequestMap());
+//		assertEquals(regex1.replaceAll(" ", ""), map.replaceAll(" ", ""));
+        System.out.println("THE QUERY 1: " + map);
+    }
+
+    @Test
+    public void testBuilder() throws QueryException {
+        CollectionQueryBuilder2 builder = new CollectionQueryBuilder2();
+        builder.setQuery("(textClass=Sport | textClass=ausland) & corpusID=WPD");
+        System.out.println("BUILDER RESULT: " + builder.toJSON());
+    }
+
+    @Test
+    public void testSimpleBuilder() {
+        CollectionQueryBuilder b = new CollectionQueryBuilder();
+        b.addMetaFilter("corpusID", "WPD");
+        b.addMetaFilter("textClass", "wissenschaft");
+        b.setFilterAttributeRelation(Relation.AND);
+        System.out.println("SIMPLE BUILDER RESULT: " + b.toCollections());
+    }
+
+    // old builder pubDate query
+    @Test
+    public void testDateQuery() {
+        CollectionQueryBuilder b = new CollectionQueryBuilder();
+        String query = "pubDate=>" + TimeUtils.getNow().getMillis();
+        query = query + " AND pubDate=<" + TimeUtils.getNow().getMillis();
+        b.addMetaFilterQuery(query);
+        b.setFilterAttributeRelation(Relation.AND);
+        System.out.println("FINAL RESOURCE: " + b.toCollections());
+    }
+
+    @Test
+    public void testDateNewQuery() throws QueryException {
+        // search for pubDate between 1990 and 2010!
+        String query = "1990<pubDate<2010 & genre=Sport";
+        CollectionQueryBuilder2 q = new CollectionQueryBuilder2();
+        q.setQuery(query);
+        System.out.println("DATE QUERY RESULT: " + q.toJSON());
+    }
+
+
+}
+