Skip to content

Commit

Permalink
chore: add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
v3xro committed Jul 31, 2024
1 parent 0f6ddc3 commit 97b925e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
21 changes: 14 additions & 7 deletions src/sql/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,20 +184,27 @@ mod tests {
);
}

#[test]
fn option_as_null() {
let mut sql = SqlBuilder::new("SELECT 1 FROM test WHERE a = ?");
sql.bind_arg(None::<u32>);
assert_eq!(sql.finish().unwrap(), r"SELECT 1 FROM test WHERE a = NULL");
}

#[test]
fn option_as_value() {
let mut sql = SqlBuilder::new("SELECT 1 FROM test WHERE a = ?");
sql.bind_arg(Some(1u32));
assert_eq!(sql.finish().unwrap(), r"SELECT 1 FROM test WHERE a = 1");
}

#[test]
fn failures() {
let mut sql = SqlBuilder::new("SELECT 1");
sql.bind_arg(42);
let err = sql.finish().unwrap_err();
assert!(err.to_string().contains("all arguments are already bound"));

let mut sql = SqlBuilder::new("SELECT ?");
sql.bind_arg(None::<u32>);
let err = sql.finish().unwrap_err();
assert!(err
.to_string()
.contains("invalid argument: serialize_none is unsupported"));

let mut sql = SqlBuilder::new("SELECT ?fields");
sql.bind_fields::<Unnamed>();
let err = sql.finish().unwrap_err();
Expand Down
4 changes: 2 additions & 2 deletions src/sql/ser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,8 +345,8 @@ mod tests {
fn it_fails_on_unsupported() {
let mut out = String::new();
assert!(write_arg(&mut out, &std::collections::HashMap::<u32, u32>::new()).is_err());
assert!(write_arg(&mut out, &None::<u32>).is_err());
assert!(write_arg(&mut out, &Some(42)).is_err());
assert!(write_arg(&mut out, &None::<u32>).is_ok());
assert!(write_arg(&mut out, &Some(42)).is_ok());
assert!(write_arg(&mut out, &()).is_err());

#[derive(Serialize)]
Expand Down

0 comments on commit 97b925e

Please sign in to comment.