forked from diesel-rs/diesel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathraw_sql.rs
More file actions
54 lines (43 loc) · 1.58 KB
/
Copy pathraw_sql.rs
File metadata and controls
54 lines (43 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
use diesel::*;
use schema::*;
#[test]
fn execute_query_by_raw_sql() {
let conn = connection();
let inserted_rows = sql_query("INSERT INTO users (id, name) VALUES (1, 'Sean')").execute(&conn);
let users = users::table.load(&conn);
let expected_users = vec![User::new(1, "Sean")];
assert_eq!(Ok(1), inserted_rows);
assert_eq!(Ok(expected_users), users);
}
#[test]
fn query_by_raw_sql() {
let conn = connection_with_sean_and_tess_in_users_table();
let sean = find_user_by_name("Sean", &conn);
let tess = find_user_by_name("Tess", &conn);
let users = sql_query("SELECT * FROM users ORDER BY id").load(&conn);
let expected = vec![sean, tess];
assert_eq!(Ok(expected), users);
}
#[test]
fn sql_query_deserializes_by_name_not_index() {
let conn = connection_with_sean_and_tess_in_users_table();
let sean = find_user_by_name("Sean", &conn);
let tess = find_user_by_name("Tess", &conn);
let users = sql_query("SELECT name, hair_color, id FROM users ORDER BY id").load(&conn);
let expected = vec![sean, tess];
assert_eq!(Ok(expected), users);
}
#[test]
fn sql_query_can_take_bind_params() {
use diesel::sql_types::Text;
let conn = connection_with_sean_and_tess_in_users_table();
let tess = find_user_by_name("Tess", &conn);
let query = if cfg!(feature = "postgres") {
sql_query("SELECT * FROM users WHERE name = $1")
} else {
sql_query("SELECT * FROM users WHERE name = ?")
};
let users = query.bind::<Text, _>("Tess").load(&conn);
let expected = vec![tess];
assert_eq!(Ok(expected), users);
}