#[cfg(test)]
mod test {
use std::{env, fs};
use std::time::Instant;
use json::{array, object};
use df_db::db::{Db, ModeDb, Request};
fn db() -> ModeDb {
let dir = env::current_dir().unwrap();
let dir = dir.join("config");
let config_path = dir.join("db.json");
let conf = fs::read_to_string(config_path.to_str().unwrap()).unwrap();
let conf = json::parse(conf.as_str().clone()).unwrap();
Db::new(conf)
}
#[test]
fn update_test() {
let mut db = db();
let mut addlist = array![];
for _item in 0..10000 {
addlist.push(object! {code:1,quantity:10,amount:1.5}).unwrap();
}
let start = Instant::now();
db.table("admin_admin").insert_all(addlist);
let duration = start.elapsed().as_millis();
println!("ms:{}", duration);
}
#[test]
fn update() {
let data = db().table("admin_admin").where_and("code", "=", 1.into()).update(object! {
batch:2
});
println!("{:#}", data);
}
#[test]
fn transaction() {
let mut db = db();
let data = db.transaction();
println!("{:#}", data);
let data = db.table("order_orderlist").delete();
println!("{:#}", data);
let data = db.rollback();
println!("{:#}", data);
}
#[test]
fn transactions() {
let mut db = db();
let data = db.transaction();
println!("{:#}", data);
let data = db.table("order_orderlist").delete();
println!("{:#}", data);
let data = db.commit();
println!("{:#}", data);
}
#[test]
fn count_count_count() {
let data = db().table("admin_admin").count();
println!("{:#}", data);
}
#[test]
fn select_1() {
let data = db().table("user_account").page(1, 25).select();
println!(">>>{:#}", data);
}
#[test]
fn stmax() {
let data = db().table("admin_admin").delete();
println!("{:#}", data);
}
#[test]
fn table_where_and() {
let data = db()
.table("admin_admin")
.where_and("name", "=", "你的".into())
.select();
println!("{:#}", data);
}
#[test]
fn table_where_and_in() {
let data = db()
.table("admin_admin")
.where_and("unique_code", "in", array!["你的","我的"])
.select();
println!("{:#}", data);
}
#[test]
fn table_where_and_notin() {
let data = db()
.table("admin_admin")
.where_and("unique_code", "not in", array!["你的","我的"])
.select();
println!("{:#}", data);
}
#[test]
fn table_where_and_between() {
let data = db()
.table("admin_admin")
.where_and("quantity", "BETWEEN", array![3,5])
.select();
println!("{:#}", data);
}
#[test]
fn table_json() {
let data = db().table("admin_admin").select();
println!("{:#}", data);
}
#[test]
fn table_column() {
let data = db().table("admin_admin").column("code");
println!("{:#}", data);
}
#[test]
fn table_distinct() {
let data = db().table("admin_admin").distinct(true).field("code,quantity,barcode").order("amount", false).select();
println!("{:#}", data);
}
#[test]
fn table_group() {
let data = db().table("admin_admin").field("code,quantity,barcode").group("code").group("barcode").order("amount", false).sum("amount");
println!("{:#}", data);
}
#[test]
fn table_admin_admin_order() {
let data = db().table("admin_admin").field("code").order("code", false).select();
println!("{:#}", data);
}
#[test]
fn table_info() {
let data = db().table_info("admin_admin");
println!("{:#}", data);
}
#[test]
fn table_add() {
let mut addlist = array![];
for _item in 0..5 {
addlist.push(object! {code:1,quantity:10,amount:1.5}).unwrap();
}
for _item in 0..5 {
addlist.push(object! {code:2,quantity:2,amount:1.02}).unwrap();
}
let data = db().table("admin_admin").insert_all(addlist);
println!("{:#}", data);
}
#[test]
fn st() {
let data = db().table("acode").max("flags");
println!("{:#}", data);
}
#[test]
fn max() {
let data = db().table("test").max("number");
println!("{}", data);
}
#[test]
fn min() {
let data = db().table("test").min("number");
println!("{}", data);
}
#[test]
fn sum() {
let data = db().table("test").sum("number");
println!("{}", data);
}
#[test]
fn avg() {
let data = db().table("test").avg("number");
println!("{}", data);
}
#[test]
fn where_and() {
let data = db().table("test").where_and("name", "=", "123123".into()).count();
println!("{}", data);
}
#[test]
fn select() {
let data = db().table("test").page(1, 2).select();
assert_eq!(2, data.len());
}
#[test]
fn find() {
let data = db().table("test").find();
assert_eq!(5, data.len());
}
#[test]
fn insert() {
let item = object! {
name:"测试添加",
number:4443
};
let data = db().table("test").insert(item);
assert_eq!(1, data);
}
#[test]
fn insert_1() {
let item = object! {
"name":"测试商品",
"code":"编号",
"barcode":"条码",
"unique_code":"12312321312",
"quality_user":"张三李四",
"quality_date":"2023-01-01",
"out_date":"2023-01-01"
};
let data = db().table("goods_origin").insert(item);
assert_eq!(1, data);
}
#[test]
fn insert_all() {
let item = array![
object! {
name:"111",
phone:11231
},
object! {
name:"111",
phone:234534
}];
let data = db().table("user_user").insert_all(item);
println!("{}", data);
assert_eq!(2, data.len());
}
#[test]
fn insert_all_test() {
let mut list = array![];
for index in 0..20000 {
list[index] = object! {
name:index,
phone:11231
}
}
let mut db = db();
db.transaction();
let start = Instant::now();
let data = db.table("user_user").insert_all(list);
println!("ms:{}", start.elapsed().as_millis());
db.rollback();
println!("{}", data.len());
}
}