use rbatis_codegen::codegen::string_util::{
concat_str, count_string_num, find_convert_string, un_packing_string,
};
#[test]
fn test_find_convert_string() {
let result = find_convert_string("SELECT * FROM users WHERE id = #{id}");
assert_eq!(result.len(), 1);
let (key, value) = result.front().unwrap();
assert_eq!(key, "id");
assert_eq!(value, "#{id}");
let result = find_convert_string("SELECT * FROM ${table} WHERE id = ${id}");
assert_eq!(result.len(), 2);
let result = find_convert_string("SELECT * FROM ${table} WHERE name = #{name} AND id = #{id}");
assert_eq!(result.len(), 3);
let result = find_convert_string("SELECT * FROM users");
assert_eq!(result.len(), 0);
let result = find_convert_string("SELECT * FROM #{users WHERE id = #{id}");
assert_eq!(result.len(), 1);
}
#[test]
fn test_count_string_num() {
let s = "hello, world, hello";
assert_eq!(count_string_num(&s.to_string(), 'h'), 2);
assert_eq!(count_string_num(&s.to_string(), 'l'), 5);
assert_eq!(count_string_num(&s.to_string(), 'o'), 3);
assert_eq!(count_string_num(&s.to_string(), ','), 2);
assert_eq!(count_string_num(&s.to_string(), 'x'), 0);
let s = "";
assert_eq!(count_string_num(&s.to_string(), 'a'), 0);
}
#[test]
fn test_un_packing_string() {
assert_eq!(un_packing_string("'hello'"), "hello");
assert_eq!(un_packing_string("\"world\""), "world");
assert_eq!(un_packing_string("`table_name`"), "table_name");
assert_eq!(un_packing_string("column"), "column");
assert_eq!(un_packing_string("'hello"), "'hello");
assert_eq!(un_packing_string("world\""), "world\"");
assert_eq!(un_packing_string(""), "");
assert_eq!(un_packing_string("a"), "a");
}
#[test]
fn test_concat_str() {
let mut text = String::new();
concat_str(&mut text, "hello");
assert_eq!(text, "hello");
let mut text = "SELECT".to_string();
concat_str(&mut text, "*");
assert_eq!(text, "SELECT *");
let mut text = "SELECT ".to_string();
concat_str(&mut text, "*");
assert_eq!(text, "SELECT *");
let mut text = "SELECT".to_string();
concat_str(&mut text, " *");
assert_eq!(text, "SELECT *");
let mut text = "id,".to_string();
concat_str(&mut text, "name");
assert_eq!(text, "id, name");
let mut text = "WHERE (".to_string();
concat_str(&mut text, "1=1");
assert_eq!(text, "WHERE ( 1=1");
}