forked from kenkoooo/AtCoderProblems
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_user_manager.rs
More file actions
59 lines (51 loc) · 1.81 KB
/
test_user_manager.rs
File metadata and controls
59 lines (51 loc) · 1.81 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
use sql_client::{
internal::user_manager::{InternalUserInfo, UserManager},
PgPool,
};
mod utils;
#[sqlx::test]
async fn test_user_manager(pool: PgPool) {
let internal_user_id = "user_id";
let atcoder_user_id = "atcoder_id";
utils::initialize(&pool).await;
let get_result = pool.get_internal_user_info(internal_user_id).await;
assert!(
get_result.is_err(),
"`get_result` for a user who has not yet been registered should be `Err`, but got `Ok`."
);
let register_result = pool.register_user(internal_user_id).await;
assert!(
register_result.is_ok(),
"`register_user` failed unexpectedly."
);
let register_result = pool.register_user(internal_user_id).await;
assert!(
register_result.is_ok(),
"Calling `register_user` twice should return `Ok`, but got `Err`."
);
let get_result = pool.get_internal_user_info(internal_user_id).await.unwrap();
assert_eq!(
get_result,
InternalUserInfo {
internal_user_id: internal_user_id.to_string(),
atcoder_user_id: None,
},
"`get_internal_user_info` for a user whose `atcoder_user_id` is not set returned an unexpected value."
);
let update_result = pool
.update_internal_user_info(internal_user_id, atcoder_user_id)
.await;
assert!(
update_result.is_ok(),
"`update_internal_user_info` failed unexpectedly."
);
let get_result = pool.get_internal_user_info(internal_user_id).await.unwrap();
assert_eq!(
get_result,
InternalUserInfo {
internal_user_id: internal_user_id.to_string(),
atcoder_user_id: Some(atcoder_user_id.to_string()),
},
"`get_internal_user_info` after `atcoder_user_id` was set returned an unexpected value."
);
}