public void testQueryBuilder() {
   ArrayList<ColumnDef> colList = new ArrayList<ColumnDef>();
   int i = 1;
   colList.add(new ColumnDef("Fld1", i));
   colList.add(new ColumnDef("Agg1 ASC", ++i, ","));
   colList.add(new ColumnDef("Agg2", ++i, ","));
   String query = ListAggProcedure.buildQueryString(colList, "MyTable", "");
   // System.out.println(query);
   assertTrue(
       query,
       query.equals("<local> SELECT Fld1,Agg1,Agg2 FROM MyTable ORDER BY Fld1 ASC,Agg1 ASC"));
 }
  public void testQueryDesc1BuilderWithWhereCaluse() {
    ArrayList<ColumnDef> colList = new ArrayList<ColumnDef>();
    int i = 1;

    colList.add(new ColumnDef("Fld1", i));
    colList.add(new ColumnDef("Field2 DESC", ++i));
    colList.add(new ColumnDef("Agg1 ASC", ++i, ","));
    colList.add(new ColumnDef("Field3 ASC", ++i));
    colList.add(new ColumnDef("Agg2 DESC", ++i, ","));

    String query = ListAggProcedure.buildQueryString(colList, "MyTable", "Fld1='abc'");
    // System.out.println(query);
    assertTrue(
        query,
        query.equals(
            "<local> SELECT Fld1,Field2,Agg1,Field3,Agg2 FROM MyTable WHERE Fld1='abc' ORDER BY Fld1 ASC,Field2 DESC,Agg1 ASC,Field3 ASC,Agg2 DESC"));
  }
  public void testProcessInputParameters1() {
    String listAggCols = "Agg1 ASC, Agg2";
    String groupByCols = "Fld1,Fld2 ASC,   Fld3 DESC";
    String delimiter = ",";
    try {
      ArrayList<ColumnDef> cols =
          ListAggProcedure.processInputParameters(listAggCols, groupByCols, delimiter);
      assertTrue("Col Count=" + cols.size(), cols.size() == 5);
      int i = 1;

      validateColumn(cols, i, new ColumnDef("Fld1", ++i, ","), ColumnDef.ASC);
      validateColumn(cols, i, new ColumnDef("Fld2", ++i, ","), ColumnDef.ASC);
      validateColumn(cols, i, new ColumnDef("Fld3", ++i, ","), ColumnDef.DESC);
      validateColumn(cols, i, new ColumnDef("Agg1", ++i, ","), ColumnDef.ASC);
      validateColumn(cols, i, new ColumnDef("Agg2", ++i, ","), ColumnDef.NONE);

    } catch (Exception e) {
      e.getMessage();
      e.printStackTrace();
    }
  }