use crate::database;
use crate::rubase::get_self::GetSelf;
use crate::rubase::rudto::cfgdto;
use crate::rubase::rutils::file_utils;
use crate::rubase::{BaseEntity, BaseEntitySingle};
use crate::rucfg;
use crate::rudi::difactroy::find_bean_di_factroy;
use crate::rudi::ditemplate;
use crate::rudi::ditemplate::parse_template;
use crate::rudomain::rudb::dbdao::userdao;
use crate::rulog::ru_log;
use chrono::{Local, Utc};
use std::sync::Arc;
#[cfg(test)]
mod tests {
use crate::rubase::BeanSingleton;
use super::*;
use crate::rudi::DiExample;
use crate::rudi::difactroy::{find_bean_di_factroy, mutex_case};
use crate::rudi::difactroy::rumulti::RuMulti;
use crate::rudi::difactroy::rusingle::RuSingle;
#[test]
fn test_00_make_suite() {
let factry = find_bean_di_factroy().unwrap();
let mut f = factry.lock().unwrap();
f.make_suite("RuSingle");
}
#[test]
fn test_01_make_suites() {
let factry = find_bean_di_factroy().unwrap();
let mut f = factry.lock().unwrap();
f.make_suites();
}
#[test]
fn test_02_read_test() {
let ret = file_utils::read_file("./tests/rucfg_test.rs");
ru_log::info(ret.unwrap().as_str());
}
#[test]
fn test_03_f_factroy() {
let cfg = rucfg::find_bean_ru_config().unwrap();
let file = cfg.lock().unwrap().find_base_path() + "/src/rudi/difactroy/di_factroy";
let ret = file_utils::read_file(file.as_str());
ru_log::info(ret.unwrap().as_str());
}
#[test]
fn test_08_factroy() {
let ret = file_utils::read_file("./src/rudi/difactroy/rusingle/ru_single");
ru_log::info(ret.unwrap().as_str());
}
#[test]
fn test_10_find_bean_parse_template() {
let pt = ditemplate::find_bean_parse_template().unwrap();
let template = pt.build_single_name("RuSingle");
ru_log::info(template.as_str());
}
#[test]
fn test_11_parse_all_files() {
let factry = find_bean_di_factroy().unwrap();
let mut di_factroy = factry.lock().unwrap();
di_factroy.parse_all_files("./src");
for stru in di_factroy.structs.iter() {
ru_log::info2("struct file:===", stru.to_json().unwrap().as_str());
}
}
#[test]
fn test_12_find_dirs() {
let files = file_utils::find_dir("./src", "ruenc");
for file in files {
ru_log::info2("find_dirs:", file.to_str().unwrap());
}
}
#[test]
fn test_15_find_dirs() {
let files =
file_utils::find_dir("C:\\Users\\leijmdas\\.cargo\\registry\\src", "rudi-0.8.3");
for file in files {
ru_log::info2("find_dirs:", file.to_str().unwrap());
}
}
#[test]
fn test_16_parse_template_file() {
let template = parse_template::ParseTemplate::parse_template_file();
ru_log::info2("parse_template_file:\r\n", template.as_str());
}
#[test]
fn test_19_parse_all_files() {
let f = find_bean_di_factroy().unwrap();
let mut factry = f.lock().unwrap();
factry.fill_template();
for stru in factry.get_structs().iter() {
ru_log::info2("struct file:===", stru.to_json().unwrap());
}
ru_log::info2(factry.get_structs().len(), factry.get_self().notShowExist);
ru_log::info2(factry.get_self().notShowExist, factry.get_template());
}
#[test]
fn test_20() {
let redisdb = database::find_bean_redis_client().unwrap().get_self();
ru_log::info2("redisdb:\r\n", redisdb);
}
#[test]
fn test_21_write_filemake_di_all() {
let ret = file_utils::write_file("e:/opt/1.txt", "dd");
println!("{:?}", ret);
assert!(ret.is_ok());
assert!(file_utils::check_file_exist(&"e:/opt/1.txt".to_string()));
}
#[test]
fn test_22_make_di_one() {
let diFacty = find_bean_di_factroy().unwrap();
let ret = diFacty.lock().unwrap().make_di_one_dir("./src", "UsersDao");
println!("{:?}", ret);
}
#[test]
fn test_24_make_di_one() {
let diFacty = find_bean_di_factroy().unwrap();
let ret = diFacty
.lock()
.unwrap()
.make_di_one_dir("./src", "RedisClient");
println!("{:?}", ret);
}
#[test]
fn test_25_make_di_one() {
let dao = userdao::find_bean_user_dao().unwrap();
let ret = dao.execute();
println!("{:?}", ret);
}
#[test]
fn test_26_make_di_force() {
let diFacty = find_bean_di_factroy().unwrap();
}
#[test]
fn test_29_make_di() {
let diFacty = find_bean_di_factroy().unwrap();
diFacty.lock().unwrap().make_di();
}
#[test]
fn test_31_list_date_format() {
pub fn local_now2str_rfc3339() -> String {
Local::now().format("%Y-%m-%dT%H:%M:%S%z").to_string()
}
pub fn utc_now2str_rfc3339() -> String {
Utc::now().format("%Y-%m-%dT%H:%M:%S%z").to_string()
}
println!("{}", local_now2str_rfc3339());
println!("{}", utc_now2str_rfc3339());
}
#[test]
fn test_32_list_di() {}
#[test]
fn test_33_single_case() {
let bean1 = find_bean_di_factroy().unwrap();
let bean2 = find_bean_di_factroy().unwrap();
let addr1 = Arc::as_ptr(&bean1);
let addr2 = Arc::as_ptr(&bean2);
println!("DiFactroy 地址: {:p} {:p}", addr1, addr2);
assert_eq!(addr1, addr2);
println!("bean1=bean2 ? {:?}", addr1 == addr2);
}
#[test]
fn test_34_multi_case() {
let bean1 = cfgdto::find_bean_gorm().unwrap();
let bean2 = cfgdto::find_bean_gorm().unwrap();
let addr1 = Arc::as_ptr(&bean1);
let addr2 = Arc::as_ptr(&bean2);
println!("DiFactroy 地址: {:p} {:p}", addr1, addr2);
assert_ne!(addr1, addr2);
println!("bean1!=bean2 ? {:?}", addr1 != addr2);
}
#[test]
fn test_35_make_di() {
let diFacty = find_bean_di_factroy().unwrap();
diFacty.lock().unwrap().make_di();
}
#[test]
fn test_36_make_di_one() {
let diFacty = find_bean_di_factroy().unwrap();
diFacty.lock().unwrap().make_di_one("RuConfig");
}
#[test]
fn test_37_make_di_force_one() {
let diFacty = find_bean_di_factroy().unwrap();
diFacty.lock().unwrap().make_di_force_one("RuConfig");
}
#[test]
fn test_38_make_suites() {
let factry = find_bean_di_factroy().unwrap();
let mut factry = factry.lock().unwrap();
factry.notShowExist = true;
println!("{:?}", factry);
factry.make_suites();
}
#[test]
fn test_41_mutex_case() {
let bean = RuMulti::find_bean().unwrap();
let mut data = bean.lock().unwrap();
data.execute();
println!("{:?}", data );
let bean1 = RuSingle::find_bean().unwrap();
let mut data1 = bean1.lock().unwrap();
data1.execute();
println!("{:?}", data1 );
}
}