diff options
Diffstat (limited to 'schist_core/schist_queries/tests')
| -rw-r--r-- | schist_core/schist_queries/tests/category_transfers.rs | 130 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/drips.rs (renamed from schist_core/schist_queries/tests/budget_drips.rs) | 151 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/pipes.rs | 151 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/transaction_categorisations.rs | 130 |
4 files changed, 334 insertions, 228 deletions
diff --git a/schist_core/schist_queries/tests/category_transfers.rs b/schist_core/schist_queries/tests/category_transfers.rs index e913dcb..13b9866 100644 --- a/schist_core/schist_queries/tests/category_transfers.rs +++ b/schist_core/schist_queries/tests/category_transfers.rs @@ -11,12 +11,21 @@ fn when_insert_bucket_transfers_then_returns_num_bucket_transfers() { let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let num_bucket_transfers_inserted = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let num_bucket_transfers_inserted = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); assert_eq!(num_bucket_transfers_inserted, 2); } @@ -27,20 +36,34 @@ fn given_bucket_transfers_when_get_all_bucket_transfers_then_return_bucket_trans let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let _ = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let _ = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); - let bucket_transfers_in_db = queries::bucket_transfers::get_all_bucket_transfers(connection).unwrap(); + let bucket_transfers_in_db = + queries::bucket_transfers::get_all_bucket_transfers(connection).unwrap(); assert_eq!(bucket_transfers_in_db.len(), bucket_transfers.len()); for bucket_transfer in &bucket_transfers { - assert!(bucket_transfers_in_db.iter().any(|bucket_transfer_in_db| bucket_transfer_in_db.eq(&bucket_transfer))); + assert!(bucket_transfers_in_db + .iter() + .any(|bucket_transfer_in_db| bucket_transfer_in_db.eq(&bucket_transfer))); } for bucket_transfer_in_db in bucket_transfers_in_db { - assert!(bucket_transfers.iter().any(|bucket_transfer| bucket_transfer.eq(&bucket_transfer_in_db))); + assert!(bucket_transfers + .iter() + .any(|bucket_transfer| bucket_transfer.eq(&bucket_transfer_in_db))); } } @@ -50,13 +73,23 @@ fn given_bucket_transfers_when_delete_all_bucket_transfers_then_return_num_of_bu let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let _ = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let _ = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); - let num_bucket_transfers_deleted = queries::bucket_transfers::delete_all_bucket_transfers(connection).unwrap(); + let num_bucket_transfers_deleted = + queries::bucket_transfers::delete_all_bucket_transfers(connection).unwrap(); assert_eq!(num_bucket_transfers_deleted, bucket_transfers.len()); } @@ -67,32 +100,60 @@ fn given_deleted_bucket_transfers_when_get_all_bucket_transfers_then_return_empt let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let _ = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let _ = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); let _ = queries::bucket_transfers::delete_all_bucket_transfers(connection).unwrap(); - let bucket_transfers_returned = queries::bucket_transfers::get_all_bucket_transfers(connection).unwrap(); + let bucket_transfers_returned = + queries::bucket_transfers::get_all_bucket_transfers(connection).unwrap(); assert_eq!(bucket_transfers_returned.len(), 0); } #[test] -fn given_bucket_transfers_when_sum_quantity_per_from_bucket_id_then_returns_sum_per_from_bucket_id() { +fn given_bucket_transfers_when_sum_quantity_per_from_bucket_id_then_returns_sum_per_from_bucket_id() +{ let context = TestContext::new(); let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).quantity(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).quantity(2).build().unwrap(), - make_fake_bucket_transfer_builder(2).from_bucket_id(1).to_bucket_id(0).quantity(4).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .amount(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .amount(2) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(2) + .from_bucket_id(1) + .to_bucket_id(0) + .amount(4) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let _ = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let _ = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); - let sums = queries::bucket_transfers::sum_bucket_transfer_quantity_per_from_bucket_id(connection); + let sums = + queries::bucket_transfers::sum_bucket_transfer_quantity_per_from_bucket_id(connection); assert!(sums.is_ok()); let mut sums = sums.unwrap(); @@ -108,12 +169,27 @@ fn given_bucket_transfers_when_sum_quantity_per_to_bucket_id_then_returns_sum_pe let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let buckets = [make_fake_bucket(0), make_fake_bucket(1)]; let bucket_transfers = [ - make_fake_bucket_transfer_builder(0).from_bucket_id(0).to_bucket_id(1).quantity(1).build().unwrap(), - make_fake_bucket_transfer_builder(1).from_bucket_id(0).to_bucket_id(1).quantity(2).build().unwrap(), - make_fake_bucket_transfer_builder(2).from_bucket_id(1).to_bucket_id(0).quantity(4).build().unwrap(), + make_fake_bucket_transfer_builder(0) + .from_bucket_id(0) + .to_bucket_id(1) + .amount(1) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(1) + .from_bucket_id(0) + .to_bucket_id(1) + .amount(2) + .build() + .unwrap(), + make_fake_bucket_transfer_builder(2) + .from_bucket_id(1) + .to_bucket_id(0) + .build() + .unwrap(), ]; let _ = queries::buckets::insert_buckets(&buckets, connection); - let _ = queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); + let _ = + queries::bucket_transfers::insert_bucket_transfers(&bucket_transfers, connection).unwrap(); let sums = queries::bucket_transfers::sum_bucket_transfer_quantity_per_to_bucket_id(connection); diff --git a/schist_core/schist_queries/tests/budget_drips.rs b/schist_core/schist_queries/tests/drips.rs index 7c5bd4d..dccdbf4 100644 --- a/schist_core/schist_queries/tests/budget_drips.rs +++ b/schist_core/schist_queries/tests/drips.rs @@ -2,7 +2,7 @@ mod common; use common::test_context::TestContext; use diesel::{Connection, SqliteConnection}; -use schist_fakes::{budget_drip::make_fake_budget_drip_builder, bucket::make_fake_bucket}; +use schist_fakes::{bucket::make_fake_bucket, drip::make_fake_drip_builder}; use schist_models::{bucket::Bucket, date_utc::DateUtc}; use schist_queries as queries; @@ -18,17 +18,20 @@ fn when_insert_budget_drips_then_returns_num_budget_drips() { let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); let budget_drips = [ - make_fake_budget_drip_builder(0) + make_fake_drip_builder(0) .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) .bucket_id(0) - .build().unwrap(), - make_fake_budget_drip_builder(1) + .build() + .unwrap(), + make_fake_drip_builder(1) .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) .bucket_id(0) - .build().unwrap(), + .build() + .unwrap(), ]; - let num_budget_drips_inserted = queries::budget_drips::insert_budget_drips(&budget_drips, connection).unwrap(); + let num_budget_drips_inserted = + queries::drips::insert_drips(&budget_drips, connection).unwrap(); assert_eq!(num_budget_drips_inserted, 2); } @@ -39,72 +42,68 @@ fn given_budget_drip_when_insert_budget_drip_same_bucket_and_same_date_then_retu let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); - let budget_drips_1 = [ - make_fake_budget_drip_builder(0) - .bucket_id(0) - .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) - .build().unwrap() - ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips_1, connection); + let budget_drips_1 = [make_fake_drip_builder(0) + .bucket_id(0) + .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) + .build() + .unwrap()]; + let _ = queries::drips::insert_drips(&budget_drips_1, connection); - let budget_drips_2 = [ - make_fake_budget_drip_builder(1) - .bucket_id(0) - .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) - .build().unwrap() - ]; - let result = queries::budget_drips::insert_budget_drips(&budget_drips_2, connection); + let budget_drips_2 = [make_fake_drip_builder(1) + .bucket_id(0) + .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) + .build() + .unwrap()]; + let result = queries::drips::insert_drips(&budget_drips_2, connection); assert!(result.is_err()); } #[test] -fn given_budget_drip_when_insert_budget_drip_different_bucket_and_same_date_then_return_num_budget_drips_inserted() { +fn given_budget_drip_when_insert_budget_drip_different_bucket_and_same_date_then_return_num_budget_drips_inserted( +) { let context = TestContext::new(); let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); - let budget_drips_1 = [ - make_fake_budget_drip_builder(0) - .bucket_id(0) - .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) - .build().unwrap() - ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips_1, connection); + let budget_drips_1 = [make_fake_drip_builder(0) + .bucket_id(0) + .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) + .build() + .unwrap()]; + let _ = queries::drips::insert_drips(&budget_drips_1, connection); - let budget_drips_2 = [ - make_fake_budget_drip_builder(1) - .bucket_id(1) - .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) - .build().unwrap() - ]; - let result = queries::budget_drips::insert_budget_drips(&budget_drips_2, connection); + let budget_drips_2 = [make_fake_drip_builder(1) + .bucket_id(1) + .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) + .build() + .unwrap()]; + let result = queries::drips::insert_drips(&budget_drips_2, connection); assert!(result.is_ok()); assert_eq!(result.unwrap(), 1); } #[test] -fn given_budget_drip_when_insert_budget_drip_same_bucket_and_different_date_then_return_num_budget_drips_inserted() { +fn given_budget_drip_when_insert_budget_drip_same_bucket_and_different_date_then_return_num_budget_drips_inserted( +) { let context = TestContext::new(); let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); - let budget_drips_1 = [ - make_fake_budget_drip_builder(0) - .bucket_id(0) - .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) - .build().unwrap() - ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips_1, connection); + let budget_drips_1 = [make_fake_drip_builder(0) + .bucket_id(0) + .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) + .build() + .unwrap()]; + let _ = queries::drips::insert_drips(&budget_drips_1, connection); - let budget_drips_2 = [ - make_fake_budget_drip_builder(1) - .bucket_id(0) - .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) - .build().unwrap() - ]; - let result = queries::budget_drips::insert_budget_drips(&budget_drips_2, connection); + let budget_drips_2 = [make_fake_drip_builder(1) + .bucket_id(0) + .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) + .build() + .unwrap()]; + let result = queries::drips::insert_drips(&budget_drips_2, connection); assert!(result.is_ok()); assert_eq!(result.unwrap(), 1); @@ -116,27 +115,33 @@ fn given_budget_drips_when_get_all_budget_drips_then_return_budget_drips() { let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); let budget_drips = [ - make_fake_budget_drip_builder(0) + make_fake_drip_builder(0) .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) .bucket_id(0) - .build().unwrap(), - make_fake_budget_drip_builder(1) + .build() + .unwrap(), + make_fake_drip_builder(1) .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) .bucket_id(0) - .build().unwrap(), + .build() + .unwrap(), ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips, connection).unwrap(); + let _ = queries::drips::insert_drips(&budget_drips, connection).unwrap(); - let budget_drips_in_db = queries::budget_drips::get_all_budget_drips(connection).unwrap(); + let budget_drips_in_db = queries::drips::get_all_drips(connection).unwrap(); assert_eq!(budget_drips_in_db.len(), budget_drips.len()); assert_eq!(budget_drips_in_db[0], budget_drips[0]); assert_eq!(budget_drips_in_db[1], budget_drips[1]); for budget_drip in &budget_drips { - assert!(budget_drips_in_db.iter().any(|budget_drip_in_db| budget_drip_in_db.eq(&budget_drip))); + assert!(budget_drips_in_db + .iter() + .any(|budget_drip_in_db| budget_drip_in_db.eq(&budget_drip))); } for budget_drip_in_db in budget_drips_in_db { - assert!(budget_drips.iter().any(|budget_drip| budget_drip.eq(&budget_drip_in_db))); + assert!(budget_drips + .iter() + .any(|budget_drip| budget_drip.eq(&budget_drip_in_db))); } } @@ -146,18 +151,20 @@ fn given_budget_drips_when_delete_all_budget_drips_then_return_num_of_budget_dri let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); let budget_drips = [ - make_fake_budget_drip_builder(0) + make_fake_drip_builder(0) .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) .bucket_id(0) - .build().unwrap(), - make_fake_budget_drip_builder(1) + .build() + .unwrap(), + make_fake_drip_builder(1) .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) .bucket_id(0) - .build().unwrap(), + .build() + .unwrap(), ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips, connection).unwrap(); + let _ = queries::drips::insert_drips(&budget_drips, connection).unwrap(); - let num_budget_drips_deleted = queries::budget_drips::delete_all_budget_drips(connection).unwrap(); + let num_budget_drips_deleted = queries::drips::delete_all_drips(connection).unwrap(); assert_eq!(num_budget_drips_deleted, budget_drips.len()); } @@ -168,19 +175,21 @@ fn given_deleted_budget_drips_when_get_all_budget_drips_then_return_empty() { let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); let _buckets = given_buckets(connection); let budget_drips = [ - make_fake_budget_drip_builder(0) + make_fake_drip_builder(0) .date(DateUtc::from_ymd(2020, 12, 25).unwrap()) .bucket_id(0) - .build().unwrap(), - make_fake_budget_drip_builder(1) + .build() + .unwrap(), + make_fake_drip_builder(1) .date(DateUtc::from_ymd(2020, 12, 26).unwrap()) .bucket_id(0) - .build().unwrap(), + .build() + .unwrap(), ]; - let _ = queries::budget_drips::insert_budget_drips(&budget_drips, connection).unwrap(); - let _ = queries::budget_drips::delete_all_budget_drips(connection).unwrap(); + let _ = queries::drips::insert_drips(&budget_drips, connection).unwrap(); + let _ = queries::drips::delete_all_drips(connection).unwrap(); - let budget_drips_returned = queries::budget_drips::get_all_budget_drips(connection).unwrap(); + let budget_drips_returned = queries::drips::get_all_drips(connection).unwrap(); assert_eq!(budget_drips_returned.len(), 0); } diff --git a/schist_core/schist_queries/tests/pipes.rs b/schist_core/schist_queries/tests/pipes.rs new file mode 100644 index 0000000..abd5a5e --- /dev/null +++ b/schist_core/schist_queries/tests/pipes.rs @@ -0,0 +1,151 @@ +mod common; + +use common::test_context::TestContext; +use diesel::{Connection, SqliteConnection}; +use schist_fakes::{ + account::make_fake_account, bucket::make_fake_bucket, pipe::make_fake_pipe_builder, + transaction::make_fake_transaction_builder, +}; +use schist_models::{account::Account, bucket::Bucket, transaction::Transaction}; +use schist_queries as queries; + +fn given_accounts(connection: &mut SqliteConnection) -> Vec<Account> { + let accounts = vec![make_fake_account(0)]; + let _ = queries::accounts::insert_accounts(&accounts, connection); + accounts +} + +fn given_buckets(connection: &mut SqliteConnection) -> Vec<Bucket> { + let buckets = vec![make_fake_bucket(0), make_fake_bucket(1)]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + buckets +} + +fn given_transactions(connection: &mut SqliteConnection) -> Vec<Transaction> { + let transactions = vec![ + make_fake_transaction_builder(0) + .account_id(0) + .build() + .unwrap(), + make_fake_transaction_builder(1) + .account_id(0) + .build() + .unwrap(), + ]; + let _ = queries::transactions::insert_transactions(&transactions, connection); + transactions +} + +#[test] +fn when_insert_pipes_then_returns_num_pipes() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + given_accounts(connection); + given_buckets(connection); + given_transactions(connection); + let pipes = [ + make_fake_pipe_builder(0).bucket_id(0).build().unwrap(), + make_fake_pipe_builder(1).bucket_id(0).build().unwrap(), + ]; + + let num_pipes_inserted = queries::pipes::insert_pipes(&pipes, connection).unwrap(); + + assert_eq!(num_pipes_inserted, 2); +} + +#[test] +fn given_pipes_when_get_all_pipes_then_return_pipes() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + given_accounts(connection); + given_buckets(connection); + given_transactions(connection); + let pipes = [ + make_fake_pipe_builder(0).bucket_id(0).build().unwrap(), + make_fake_pipe_builder(1).bucket_id(0).build().unwrap(), + ]; + let _ = queries::pipes::insert_pipes(&pipes, connection); + + let pipes_in_db = queries::pipes::get_all_pipes(connection).unwrap(); + + assert_eq!(pipes_in_db.len(), pipes.len()); + for pipe in &pipes { + assert!(pipes_in_db.iter().any(|pipe_in_db| pipe_in_db.eq(&pipe))); + } + for pipe_in_db in pipes_in_db { + assert!(pipes.iter().any(|pipe| pipe.eq(&pipe_in_db))); + } +} + +#[test] +fn given_pipes_when_delete_all_pipes_then_return_num_of_pipes() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + given_accounts(connection); + given_buckets(connection); + given_transactions(connection); + let pipes = [ + make_fake_pipe_builder(0).bucket_id(0).build().unwrap(), + make_fake_pipe_builder(1).bucket_id(0).build().unwrap(), + ]; + let _ = queries::pipes::insert_pipes(&pipes, connection); + + let num_pipes_deleted = queries::pipes::delete_all_pipes(connection).unwrap(); + + assert_eq!(num_pipes_deleted, pipes.len()); +} + +#[test] +fn given_deleted_pipes_when_get_all_pipes_then_return_empty() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + given_accounts(connection); + given_buckets(connection); + given_transactions(connection); + let pipes = [ + make_fake_pipe_builder(0).bucket_id(0).build().unwrap(), + make_fake_pipe_builder(1).bucket_id(0).build().unwrap(), + ]; + let _ = queries::pipes::insert_pipes(&pipes, connection); + let _ = queries::pipes::delete_all_pipes(connection); + + let pipes_returned = queries::pipes::get_all_pipes(connection).unwrap(); + + assert_eq!(pipes_returned.len(), 0); +} + +#[test] +fn given_pipes_when_sum_quantity_per_bucket_id_then_returns_sum_quantity_per_bucket_id() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + given_accounts(connection); + let buckets = given_buckets(connection); + given_transactions(connection); + let pipes = [ + make_fake_pipe_builder(0) + .bucket_id(0) + .amount(1) + .build() + .unwrap(), + make_fake_pipe_builder(1) + .bucket_id(0) + .amount(2) + .build() + .unwrap(), + make_fake_pipe_builder(2) + .bucket_id(1) + .amount(4) + .build() + .unwrap(), + ]; + let _ = queries::pipes::insert_pipes(&pipes, connection); + + let sums = queries::pipes::sum_pipes_flow_per_bucket_id(connection); + + assert!(sums.is_ok()); + let mut sums = sums.unwrap(); + sums.sort_by_key(|sum| sum.0); + assert_eq!(buckets.len(), sums.len()); + assert_eq!(3, sums[0].1); + assert_eq!(4, sums[1].1); +} diff --git a/schist_core/schist_queries/tests/transaction_categorisations.rs b/schist_core/schist_queries/tests/transaction_categorisations.rs deleted file mode 100644 index bb88896..0000000 --- a/schist_core/schist_queries/tests/transaction_categorisations.rs +++ /dev/null @@ -1,130 +0,0 @@ -mod common; - -use common::test_context::TestContext; -use diesel::{Connection, SqliteConnection}; -use schist_fakes::{account::make_fake_account, bucket::make_fake_bucket, transaction::make_fake_transaction_builder, transaction_categorisation::make_fake_transaction_categorisation_builder}; -use schist_models::{account::Account, bucket::Bucket, transaction::Transaction}; -use schist_queries as queries; - -fn given_accounts(connection: &mut SqliteConnection) -> Vec<Account> { - let accounts = vec![make_fake_account(0)]; - let _ = queries::accounts::insert_accounts(&accounts, connection); - accounts -} - -fn given_buckets(connection: &mut SqliteConnection) -> Vec<Bucket> { - let buckets = vec![make_fake_bucket(0), make_fake_bucket(1)]; - let _ = queries::buckets::insert_buckets(&buckets, connection); - buckets -} - -fn given_transactions(connection: &mut SqliteConnection) -> Vec<Transaction> { - let transactions = vec![ - make_fake_transaction_builder(0).account_id(0).build().unwrap(), - make_fake_transaction_builder(1).account_id(0).build().unwrap(), - ]; - let _ = queries::transactions::insert_transactions(&transactions, connection); - transactions -} - -#[test] -fn when_insert_transaction_categorisations_then_returns_num_transaction_categorisations() { - let context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); - given_accounts(connection); - given_buckets(connection); - given_transactions(connection); - let transaction_categorisations = [ - make_fake_transaction_categorisation_builder(0).bucket_id(0).build().unwrap(), - make_fake_transaction_categorisation_builder(1).bucket_id(0).build().unwrap(), - ]; - - let num_transaction_categorisations_inserted = queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection).unwrap(); - - assert_eq!(num_transaction_categorisations_inserted, 2); -} - -#[test] -fn given_transaction_categorisations_when_get_all_transaction_categorisations_then_return_transaction_categorisations() { - let context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); - given_accounts(connection); - given_buckets(connection); - given_transactions(connection); - let transaction_categorisations = [ - make_fake_transaction_categorisation_builder(0).bucket_id(0).build().unwrap(), - make_fake_transaction_categorisation_builder(1).bucket_id(0).build().unwrap(), - ]; - let _ = queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection); - - let transaction_categorisations_in_db = queries::transaction_categorisations::get_all_transaction_categorisations(connection).unwrap(); - - assert_eq!(transaction_categorisations_in_db.len(), transaction_categorisations.len()); - for transaction_categorisation in &transaction_categorisations { - assert!(transaction_categorisations_in_db.iter().any(|transaction_categorisation_in_db| transaction_categorisation_in_db.eq(&transaction_categorisation))); - } - for transaction_categorisation_in_db in transaction_categorisations_in_db { - assert!(transaction_categorisations.iter().any(|transaction_categorisation| transaction_categorisation.eq(&transaction_categorisation_in_db))); - } -} - -#[test] -fn given_transaction_categorisations_when_delete_all_transaction_categorisations_then_return_num_of_transaction_categorisations() { - let context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); - given_accounts(connection); - given_buckets(connection); - given_transactions(connection); - let transaction_categorisations = [ - make_fake_transaction_categorisation_builder(0).bucket_id(0).build().unwrap(), - make_fake_transaction_categorisation_builder(1).bucket_id(0).build().unwrap(), - ]; - let _ = queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection); - - let num_transaction_categorisations_deleted = queries::transaction_categorisations::delete_all_transaction_categorisations(connection).unwrap(); - - assert_eq!(num_transaction_categorisations_deleted, transaction_categorisations.len()); -} - -#[test] -fn given_deleted_transaction_categorisations_when_get_all_transaction_categorisations_then_return_empty() { - let context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); - given_accounts(connection); - given_buckets(connection); - given_transactions(connection); - let transaction_categorisations = [ - make_fake_transaction_categorisation_builder(0).bucket_id(0).build().unwrap(), - make_fake_transaction_categorisation_builder(1).bucket_id(0).build().unwrap(), - ]; - let _ = queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection); - let _ = queries::transaction_categorisations::delete_all_transaction_categorisations(connection); - - let transaction_categorisations_returned = queries::transaction_categorisations::get_all_transaction_categorisations(connection).unwrap(); - - assert_eq!(transaction_categorisations_returned.len(), 0); -} - -#[test] -fn given_transaction_categorisations_when_sum_quantity_per_bucket_id_then_returns_sum_quantity_per_bucket_id() { - let context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); - given_accounts(connection); - let buckets = given_buckets(connection); - given_transactions(connection); - let transaction_categorisations = [ - make_fake_transaction_categorisation_builder(0).bucket_id(0).quantity(1).build().unwrap(), - make_fake_transaction_categorisation_builder(1).bucket_id(0).quantity(2).build().unwrap(), - make_fake_transaction_categorisation_builder(2).bucket_id(1).quantity(4).build().unwrap(), - ]; - let _ = queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection); - - let sums = queries::transaction_categorisations::sum_transaction_categorisation_quantity_per_bucket_id(connection); - - assert!(sums.is_ok()); - let mut sums = sums.unwrap(); - sums.sort_by_key(|sum| sum.0); - assert_eq!(buckets.len(), sums.len()); - assert_eq!(3, sums[0].1); - assert_eq!(4, sums[1].1); -} |
