You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnosygnu_xowa/140_dbs/src/gplx/dbs/qrys/Db_qry_select_tst.java

90 lines
3.1 KiB

/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012 gnosygnu@gmail.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.dbs.qrys; import gplx.*; import gplx.dbs.*;
import org.junit.*; import gplx.dbs.sqls.*;
public class Db_qry_select_tst {
@Before public void setup() {
cmd = new Db_qry__select_cmd();
} Db_qry__select_cmd cmd; String expd;
@Test public void Basic() {
cmd.Cols_("fld0", "fld1").From_("tbl0");
expd = "SELECT fld0, fld1 FROM tbl0";
tst_XtoStr(cmd, expd);
}
@Test public void OrderDoesNotMatter() {
cmd.From_("tbl0").Cols_("fld0", "fld1");
expd = "SELECT fld0, fld1 FROM tbl0";
tst_XtoStr(cmd, expd);
}
@Test public void DefaultAllFields() {
cmd.From_("tbl0");
expd = "SELECT * FROM tbl0";
tst_XtoStr(cmd, expd);
}
@Test public void Where() {
cmd.From_("tbl0").Where_(Db_crt_.New_eq("fld0", 0));
expd = "SELECT * FROM tbl0 WHERE fld0 = 0";
tst_XtoStr(cmd, expd);
}
@Test public void Join() {
cmd.From_("tbl0").Join_("tbl1", "t1", Db_qry_.New_join__join("fld1", "tbl0", "fld0"));
expd = "SELECT * FROM tbl0 INNER JOIN tbl1 t1 ON tbl0.fld0 = t1.fld1";
tst_XtoStr(cmd, expd);
}
@Test public void OrderBy() {
cmd.From_("tbl0").Order_("fld0", true);
expd = "SELECT * FROM tbl0 ORDER BY fld0";
tst_XtoStr(cmd, expd);
}
@Test public void OrderByMany() {
cmd.From_("tbl0").Order_asc_many_("fld0", "fld1");
expd = "SELECT * FROM tbl0 ORDER BY fld0, fld1";
tst_XtoStr(cmd, expd);
}
@Test public void Limit() {
cmd.From_("tbl0").Limit_(10);
expd = "SELECT * FROM tbl0 LIMIT 10";
tst_XtoStr(cmd, expd);
}
// @Test public void GroupBy() {
// cmd.From_("tbl0").groupBy_("fld0", "fld1");
// expd = "SELECT fld0, fld1 FROM tbl0 GROUP BY fld0, fld1";
// Tfds.Eq(cmd.To_str(), expd);
// }
// @Test public void Union() {
// cmd.From_("tbl0").select("fld0").union_(qry2.from("tbl1").select("fld0"));
// cmd.From_("tbl0").select("fld0").union_().from("tbl1").select("fld0"); // feasible, but will be bad later when trying to access Db_qry__select_cmd props
// expd = "SELECT fld0 FROM tbl0 UNION SELECT fld0 FROM tbl1";
// Tfds.Eq(cmd.To_str(), expd);
// }
// @Test public void Having() {
// cmd.From_("tbl0").groupBy_("fld0", "fld1");
// expd = "SELECT fld0, fld1 FROM tbl0 GROUP BY fld0, fld1 HAVING Count(fld0) > 1";
// Tfds.Eq(cmd.To_str(), expd);
// }
void tst_XtoStr(Db_qry qry, String expd) {Tfds.Eq(expd, cmd.To_sql__exec(Sql_qry_wtr_.Basic));}
}