gluesql_test_suite/function/
md5.rs1use {
2 crate::*,
3 gluesql_core::{
4 error::TranslateError,
5 prelude::{Payload, Value::*},
6 },
7};
8
9test_case!(md5, {
10 let g = get_tester!();
11
12 g.test(
13 "VALUES(MD5('GlueSQL'))",
14 Ok(select!(
15 column1
16 Str;
17 "4274ecec96f3ee59b51b168dc6137231".to_owned()
18 )),
19 )
20 .await;
21
22 g.test(
23 "CREATE TABLE MD5 (id INTEGER, text TEXT);",
24 Ok(Payload::Create),
25 )
26 .await;
27
28 g.test(
29 "INSERT INTO MD5 VALUES (1, 'GlueSQL Hi');",
30 Ok(Payload::Insert(1)),
31 )
32 .await;
33
34 g.test(
35 "SELECT MD5(text) AS md5 FROM MD5;",
36 Ok(select!(
37 md5
38 Str;
39 "eab30259ac1a92b66794f301a6ac3ff3".to_owned()
40 )),
41 )
42 .await;
43
44 g.test(
45 r#"SELECT MD5(NULL) AS md5 FROM MD5;"#,
46 Ok(select_with_null!(md5; Null)),
47 )
48 .await;
49
50 g.test(
51 r#"SELECT MD5() FROM MD5;"#,
52 Err(TranslateError::FunctionArgsLengthNotMatching {
53 name: "MD5".to_owned(),
54 expected: 1,
55 found: 0,
56 }
57 .into()),
58 )
59 .await;
60});