forked from rust-postgres/rust-postgres
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.rs
More file actions
94 lines (75 loc) · 2.58 KB
/
Copy pathtest.rs
File metadata and controls
94 lines (75 loc) · 2.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
extern mod postgres;
use postgres::{PostgresConnection};
use postgres::types::ToSql;
#[test]
fn test_basic() {
let conn = PostgresConnection::connect("postgres://postgres@127.0.0.1:5432");
do conn.in_transaction |trans| {
trans.prepare("CREATE TABLE foo (id BIGINT PRIMARY KEY)").update([]);
trans.set_rollback();
};
}
#[test]
fn test_prepare_err() {
let conn = PostgresConnection::connect("postgres://postgres@127.0.0.1:5432");
assert!(conn.try_prepare("invalid sql statment").is_err());
}
#[test]
fn test_query() {
let conn = PostgresConnection::connect("postgres://postgres@127.0.0.1:5432");
do conn.in_transaction |trans| {
trans.prepare("CREATE TABLE foo (id BIGINT PRIMARY KEY)").update([]);
trans.prepare("INSERT INTO foo (id) VALUES ($1), ($2)")
.update([&1 as &ToSql, &2 as &ToSql]);
let stmt = trans.prepare("SELECT * from foo ORDER BY id");
let result = stmt.query([]);
assert_eq!(~[1, 2], result.iter().map(|row| { row[0] }).collect());
trans.set_rollback();
};
}
#[test]
fn test_nulls() {
let conn = PostgresConnection::connect("postgres://postgres@127.0.0.1:5432");
do conn.in_transaction |trans| {
trans.prepare("CREATE TABLE foo (
id BIGINT PRIMARY KEY,
val VARCHAR
)").update([]);
trans.prepare("INSERT INTO foo (id, val) VALUES ($1, $2), ($3, $4)")
.update([&1 as &ToSql, & &"foobar" as &ToSql,
&2 as &ToSql, &None::<~str> as &ToSql]);
let stmt = trans.prepare("SELECT id, val FROM foo ORDER BY id");
let result = stmt.query([]);
assert_eq!(~[Some(~"foobar"), None],
result.iter().map(|row| { row[1] }).collect());
trans.set_rollback();
};
}
#[test]
fn test_plaintext_pass() {
PostgresConnection::connect("postgres://pass_user:password@127.0.0.1:5432");
}
#[test]
#[should_fail]
fn test_plaintext_pass_no_pass() {
PostgresConnection::connect("postgres://pass_user@127.0.0.1:5432");
}
#[test]
#[should_fail]
fn test_plaintext_pass_wrong_pass() {
PostgresConnection::connect("postgres://pass_user:asdf@127.0.0.1:5432");
}
#[test]
fn test_md5_pass() {
PostgresConnection::connect("postgres://md5_user:password@127.0.0.1:5432");
}
#[test]
#[should_fail]
fn test_md5_pass_no_pass() {
PostgresConnection::connect("postgres://md5_user@127.0.0.1:5432");
}
#[test]
#[should_fail]
fn test_md5_pass_wrong_pass() {
PostgresConnection::connect("postgres://md5_user:asdf@127.0.0.1:5432");
}