use std::sync::Arc;
use chrono::{Local, Utc};
use time::OffsetDateTime;
use crate::{database, rucmd};
use crate::rubase::{rutils, BaseEntity, BaseEntitySingle };
use crate::rubase::getself::GetSelf;
use crate::rubase::rudto::cfgdto;
use crate::rubase::rutils::fileutils;
use crate::rucfg;
use crate::rudi::difactroy::{difactroy, difactroy_init, find_bean_difactroy, rumulti, rusingle};
use crate::rudi::ditemplate::parsetemplate;
use crate::rudomain::rudb::dbdao::userdao;
use crate::rulog::rulog;
#[test]
fn test_01_f_commit() {
let ret = fileutils::read_file("./commit.bat");
rulog::info(ret.unwrap().as_str());
}
#[test]
fn test_02_f_cfg_test() {
let ret = fileutils::read_file("./tests/rucfg_test.rs");
rulog::info(ret.unwrap().as_str());
}
#[test]
fn test_03_f_factroy() {
let ret = fileutils::read_file("./src/rudi/difactroy/difactroy.rs");
rulog::info(ret.unwrap().as_str());
}
#[test]
fn test_04_f_factroy() {
let cfg = rucfg::find_bean_ruconfig().unwrap();
println!("{}", cfg.config.lock().unwrap().software.logLevel);
}
#[test]
fn test_06_rusingle() {
let rs = rusingle::find_bean_rusingle().unwrap();
let ret = rs.execute();
crate::rulog::info(ret.as_str());
}
#[test]
fn test_07_rumulti() {
let rs = rumulti::find_bean_rumulti().unwrap();
let ret = rs.execute();
crate::rulog::info(ret.as_str());
}
#[test]
fn test_08_factroy() {
let ret = fileutils::read_file("./src/rudi/difactroy/rusingle/rusingle.rs");
rulog::info(ret.unwrap().as_str());
}
#[test]
fn test_09_build_single_file_name() {
let pt = parsetemplate::find_bean_pt().unwrap();
let template = pt.build_single_file_name("RuSingle");
rulog::info(template.as_str());
}
#[test]
fn test_10_build_single_name() {
let pt = parsetemplate::find_bean_pt().unwrap();
let template = pt.build_single_name("RuSingle");
rulog::info(template.as_str());
}
#[test]
fn test_11_parse_all_files() {
let mut diFacty = difactroy::DiFactroy::new();
diFacty.notShowExist = true;
diFacty.parse_all_files("./src");
for stru in diFacty.structs.lock().unwrap().iter() {
if diFacty.notShowExist && stru.existIniFile {
continue;
}
rulog::info2("struct file:===", stru.to_json().as_str());
}
}
#[test]
fn test_12_find_dirs() {
let files = fileutils::find_dir("./src", "ruenc");
for file in files {
rulog::info2("find_dirs:", file.to_str().unwrap());
}
}
#[test]
fn test_15_find_dirs() {
let files = fileutils::find_dir("C:\\Users\\leijmdas\\.cargo\\registry\\src", "rudi-0.8.3");
for file in files {
rulog::info2("find_dirs:", file.to_str().unwrap());
}
}
#[test]
fn test_16_parse_template_file() {
let template = parsetemplate::ParseTemplate::parse_template_file();
rulog::info2("parse_template_file:\r\n", template.as_str());
}
#[test]
fn test_19_parse_all_files() {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
diFacty.parse_all_files("./src");
for stru in diFacty.structs.lock().unwrap().iter() {
if diFacty.notShowExist && stru.existIniFile {
continue;
}
rulog::info2("struct file:===", stru.to_json().as_str());
}
}
#[test]
fn test_20() {
let db = database::find_bean_redisclient();
println!("{:?}", db);
if let Some(db) = database::find_bean_database() {
println!("{:?}", *db);
println!("{:?}", db);
}
}
#[test]
fn test_21_write_filemake_di_all() {
let ret = fileutils::write_file("e:/opt/1.txt", "dd");
println!("{:?}", ret);
assert!(ret.is_ok());
assert!(fileutils::check_file_exist(&"e:/opt/1.txt".to_string()));
}
#[test]
fn test_22_make_di_one() {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
let ret = diFacty.make_di_one_dir("./src", "UsersDao");
println!("{:?}", ret);
}
#[test]
fn test_24_make_di_one() {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
let ret = diFacty.make_di_one_dir("./src", "RedisClient");
println!("{:?}", ret);
}
#[test]
fn test_25_make_di_one() {
let dao = userdao::find_bean_userdao().unwrap();
let ret = dao.execute();
println!("{:?}", ret);
}
#[test]
fn test_26_make_di_force() {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
diFacty.make_di_force("./src");
}
#[test]
fn test_29_make_di () {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
diFacty.make_di ( );
}
#[test]
fn test_30_list_di () {
let diFacty = difactroy_init::find_bean_difactroy().unwrap();
diFacty.list_di ( );
let now = OffsetDateTime::now_utc();
println!("{}", now.format(&time::format_description::well_known::Rfc3339).unwrap());
}
#[test]
fn test_31_list_di () {
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 () {
let dr=rutils::find_bean_daterange().unwrap().get_self();
println!("{:?},{:?}", dr , dr.init());
rulog::info(dr.to_json().as_str());
}
#[test]
fn test_33_single_case() {
let bean1=find_bean_difactroy().unwrap();
let bean2=find_bean_difactroy().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);
}