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
|
use budgeting_app_core::queries;
use diesel::{Connection, SqliteConnection};
use crate::common::{fakes::account::make_fake_account, test_context::TestContext};
#[test]
fn when_insert_accounts_then_returns_num_accounts() {
let context = TestContext::new();
let connection = &mut SqliteConnection::establish(&context.db_url).unwrap();
let accounts = [make_fake_account(0), make_fake_account(1)];
let num_accounts_inserted = queries::accounts::insert_accounts(&accounts, connection).unwrap();
assert_eq!(num_accounts_inserted, 2);
}
#[test]
fn given_accounts_when_get_all_accounts_then_return_accounts() {
let context = TestContext::new();
let connection = &mut SqliteConnection::establish(&context.db_url).unwrap();
let accounts = [make_fake_account(0), make_fake_account(1)];
let _ = queries::accounts::insert_accounts(&accounts, connection).unwrap();
let accounts_in_db = queries::accounts::get_all_accounts(connection).unwrap();
assert_eq!(accounts_in_db.len(), accounts.len());
for account in &accounts {
assert!(accounts_in_db.iter().any(|account_in_db| account_in_db.eq(&account)));
}
for account_in_db in accounts_in_db {
assert!(accounts.iter().any(|account| account.eq(&account_in_db)));
}
}
#[test]
fn given_accounts_when_delete_all_accounts_then_return_num_of_accounts() {
let context = TestContext::new();
let connection = &mut SqliteConnection::establish(&context.db_url).unwrap();
let accounts = [make_fake_account(0), make_fake_account(1)];
let _ = queries::accounts::insert_accounts(&accounts, connection).unwrap();
let num_accounts_deleted = queries::accounts::delete_all_accounts(connection).unwrap();
assert_eq!(num_accounts_deleted, accounts.len());
}
#[test]
fn given_deleted_accounts_when_get_all_accounts_then_return_empty() {
let context = TestContext::new();
let connection = &mut SqliteConnection::establish(&context.db_url).unwrap();
let accounts = [make_fake_account(0), make_fake_account(1)];
let _ = queries::accounts::insert_accounts(&accounts, connection).unwrap();
let _ = queries::accounts::delete_all_accounts(connection).unwrap();
let accounts_returned = queries::accounts::get_all_accounts(connection).unwrap();
assert_eq!(accounts_returned.len(), 0);
}
|