mod common; use common::test_context::TestContext; use diesel::{Connection, SqliteConnection}; use schist_fakes::account::make_fake_account; use schist_queries as queries; #[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); }