use teaql_tool::T;
#[test]
fn test_facade_standard_tools() {
let now = T::time().now();
assert!(now.timestamp() > 0);
let uuid = T::id().uuid();
assert_eq!(uuid.len(), 36);
let b64 = T::codec().base64_encode("facade");
assert_eq!(b64, "ZmFjYWRl");
assert!(T::validate().email("test@teaql.com"));
assert_eq!(T::color().alice_blue(), "#F0F8FF");
let today = T::daterange().today();
assert!(today.start <= today.end);
let mut i18n = T::i18n();
i18n.add("en", "greet", "Hello");
assert_eq!(i18n.t("en", "greet"), "Hello");
assert!(!T::system().os().is_empty());
let trie = T::filter().build_trie(&["bad"]);
assert!(T::filter().contains_sensitive("a bad word", &trie));
let text = T::text().trim(" hello ");
assert_eq!(text, "hello");
let parsed = T::json().parse(r#"{"test": 1}"#).unwrap();
assert!(T::json().has(&parsed, "/test"));
let dec = T::decimal().of("10.5").unwrap();
assert_eq!(T::decimal().add(dec, dec).to_string(), "21.0");
let money = T::money().of("100", "USD").unwrap();
assert_eq!(T::money().format(&money), "100 USD");
}
#[test]
#[cfg(feature = "extra")]
fn test_facade_extra_tools() {
let num = T::random().int(1, 10);
assert!(num >= 1 && num <= 10);
let key = T::crypto().generate_key();
assert_eq!(key.len(), 32);
let csv = T::csv().parse("a,b\n1,2").unwrap();
assert_eq!(csv.len(), 1); assert_eq!(csv[0][0], "1");
T::config().load_env().ok();
let cache = T::cache();
cache.put("test_key", "test_val");
assert_eq!(cache.get("test_key").unwrap(), "test_val");
}