#[cfg(test)]
mod tests {
use json::{array, object};
use df_helper::orm::db::Db;
use df_helper::{datetime, files};
use df_helper::files::file;
#[test]
fn add() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut timer = datetime::timer::Timer::start("ms");
let mut db = Db::connect(conf);
let mut data = array![];
for item in 0..5 {
data.push(object! {
id:item,
name:"123123",
}).expect("TODO: panic message");
}
let _sql = db.table("tests").fetch_sql(false).add(data.clone());
timer.end(true);
}
#[test]
fn select() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("admin_admin")
.where_and("phone", "=", "13708002806".into())
.find();
println!("{:#}", sql);
}
#[test]
fn select_in() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fields("name,id")
.fetch_sql(false)
.where_and("name", "in", array![3,6])
.select();
println!("{:#}", sql);
}
#[test]
fn select_not_in() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fields("name,id")
.fetch_sql(false)
.where_and("name", "notin", array![3,6])
.select();
println!("{:#}", sql);
}
#[test]
fn order() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.order("num_int", 1)
.order("num_decimal", 1)
.fields("num_int,num_decimal,id")
.limit(10)
.fetch_sql(false)
.select();
println!("{:#}", sql);
assert_eq!(sql.len(), 10);
}
#[test]
fn select_where_column() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.where_column("num_int", ">=", "num_decimal")
.fetch_sql(false)
.count();
println!("{}", sql);
}
#[test]
fn find() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.order("id", 0)
.fetch_sql(false)
.find();
println!("{:#}", sql);
}
#[test]
fn column() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.distinct(true)
.fetch_sql(false)
.fields("name")
.limit(15)
.column();
println!("{:#}", sql);
}
#[test]
fn value() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.order("id", 1)
.fetch_sql(false)
.value("id");
println!("{:#}", sql);
}
#[test]
fn update() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let data = object! {
name:"5555"
};
let sql = db.table("tests")
.fetch_sql(false)
.update(data);
println!("{:#}", sql);
}
#[test]
fn update_where() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let data = object! {
name:"6666"
};
let sql = db.table("tests")
.fetch_sql(false)
.where_and("name", "in", array![3333,4444])
.update(data);
println!("{:#}", sql);
}
#[test]
fn update_case_when() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let data = array![
object! {
name:6,
num_decimal:1,
num_int:3
},
object! {
name:7,
num_decimal:3,
num_int:5
},
object! {
name:8,
num_decimal:4,
num_int:2
}
];
let sql = db.table("tests")
.fetch_sql(false)
.update_case("name", data);
println!("{:#}", sql);
}
#[test]
fn delete() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.where_and("str_name", "in", array![5555])
.delete();
println!("{:#}", sql);
}
#[test]
fn count() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.count();
println!("{:#}", sql);
}
#[test]
fn group() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(true)
.group("name,num_int")
.column();
println!("{:#}", sql);
}
#[test]
fn max() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.max("name");
println!("{:#}", sql);
}
#[test]
fn min() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.min("name");
println!("{:#}", sql);
let sql = db.table("tests")
.fetch_sql(false)
.min("name,num_int");
println!("{:#}", sql);
}
#[test]
fn avg() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.avg("name");
println!("{:#}", sql);
let sql = db.table("tests")
.fetch_sql(false)
.avg("name,num_int");
println!("{:#}", sql);
}
#[test]
fn sum() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.sum("name,num_int");
println!("{:#}", sql);
let sql = db.table("tests")
.fetch_sql(false)
.sum("name");
println!("{:#}", sql);
}
#[test]
fn inc() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.inc("name", 1.into())
.update(object! {
"num_int":"123123"
});
println!("{:#}", sql);
}
#[test]
fn dec() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.dec("name", 1.into())
.update(object! {
"num_int":"33"
});
println!("{:#}", sql);
}
#[test]
fn testssss() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.distinct(true)
.fetch_sql(false)
.fields("name")
.column();
println!("{:#}", sql);
let sql = db.table("tests")
.distinct(true)
.fetch_sql(false)
.fields("name")
.column();
println!("{:#}", sql);
}
#[test]
fn delete_all() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fetch_sql(false)
.delete();
println!("{:#}", sql);
}
#[test]
fn transaction() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
db.transaction();
let count = db.table("tests").count();
println!("{:#}", count);
db.table("tests").limit(1).delete();
db.commit();
let count = db.table("tests").count();
println!("{:#}", count);
}
#[test]
fn select_where_null() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.where_and("str_text", "null", true.into())
.fetch_sql(false)
.count();
println!("{:#}", sql);
}
#[test]
fn select_where_between() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fields("name")
.where_and("name", "between", array!["4","8"])
.fetch_sql(false)
.select();
println!("{:#}", sql);
}
#[test]
fn select_where_notbetween() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fields("name")
.where_and("name", "notbetween", array!["2",8])
.fetch_sql(false)
.select();
println!("{:#}", sql);
}
#[test]
fn union() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("tests")
.fields("name")
.fetch_sql(false)
.union("tests1", true).select();
println!("{:#}", sql);
}
#[test]
fn fieldsinfo() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("admin_admin")
.hidden("add_time")
.fieldsinfo();
println!("{:#}", sql);
}
#[test]
fn hidden() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("admin_admin")
.hidden("pass,phone,add_time,sex").select();
println!("{:#}", sql);
}
#[test]
fn like() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let sql = db.table("admin_admin")
.where_and("phone", "like", "%137080%".into())
.where_or("name", "like", "%测试%".into())
.select();
println!("{:#}", sql);
}
#[test]
fn admin() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf);
let data = db.table("order_admin").select();
println!("{:#}", data);
}
#[test]
fn order_temp() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf.clone());
let data = db.set_connection("order").table("order_temp").select();
let mut list = array![];
for item in data.members() {
let mut row = object! {};
if item["deltime"].as_f64().unwrap() > 0.0 {
continue;
}
row["add_time"] = item["addtime"].clone();
row["upt_time"] = item["uptime"].clone();
row["img"] = item["img"].clone();
row["imgs"] = item["imgs"].clone();
row["pv"] = item["pv"].clone();
row["mode"] = item["type"].clone();
row["name"] = item["name"].clone();
list.push(row).unwrap();
}
let data = db.set_connection("text").table("order_temp").add(list);
println!("{:#}", data);
}
#[test]
fn admin_admin() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf.clone());
let data = db.table("admin_admin")
.where_and("note", "=", "123213".into())
.select();
println!("{:#}", data);
}
#[test]
fn test_c() {
let conf = files::file::file_content_get_json("tests/config/db.json");
let mut db = Db::connect(conf.clone());
let table_list = vec!["admin_admin", "user_user", "order_temp", "order_order", "order_orderlist", "file_file"];
for table in table_list {
let tables = file::file_content_get_json(format!("tests/sql/{}.json", table).as_str());
if db.query_table(table) {
db.update_table(table, tables);
} else {
db.create_table(table, tables);
}
}
}
}