mirror of https://github.com/gnosygnu/xowa
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.
90 lines
3.1 KiB
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));}
|
|
}
|