diff options
| author | joeac <me@joeac.net> | 2026-01-17 17:17:50 +0000 |
|---|---|---|
| committer | joeac <me@joeac.net> | 2026-01-17 17:17:50 +0000 |
| commit | bf74f305894bde98033932235a4210c7d6865adf (patch) | |
| tree | 051422c97fcb5d7c2eafd426ea66e1a906948747 /schist_core/schist_queries/tests | |
| parent | fe85652e4d3e8906824baddaafd05d19105579b8 (diff) | |
| parent | f69ec8416c4e6301dcfa06791b025785d7f61b6b (diff) | |
Merge pull request 'random-stuff' (#4) from random-stuff into main
Reviewed-on: https://git.joeac.net/joeac/schist/pulls/4
Diffstat (limited to 'schist_core/schist_queries/tests')
| -rw-r--r-- | schist_core/schist_queries/tests/bucket_transactions.rs | 160 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/buckets.rs (renamed from schist_core/schist_queries/tests/categories.rs) | 0 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/category_transfers.rs | 201 | ||||
| -rw-r--r-- | schist_core/schist_queries/tests/pipes.rs | 2 |
4 files changed, 161 insertions, 202 deletions
diff --git a/schist_core/schist_queries/tests/bucket_transactions.rs b/schist_core/schist_queries/tests/bucket_transactions.rs new file mode 100644 index 0000000..0b63458 --- /dev/null +++ b/schist_core/schist_queries/tests/bucket_transactions.rs @@ -0,0 +1,160 @@ +mod common; + +use common::test_context::TestContext; +use diesel::{Connection, SqliteConnection}; +use schist_fakes::{ + bucket::make_fake_bucket, bucket_transaction::make_fake_bucket_transaction_builder, +}; +use schist_queries as queries; + +#[test] +fn when_insert_bucket_transactions_then_returns_num_bucket_transactions() { + 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_transactions = [ + make_fake_bucket_transaction_builder(0) + .bucket_id(0) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(1) + .bucket_id(1) + .build() + .unwrap(), + ]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + + let num_bucket_transactions_inserted = + queries::bucket_transactions::insert_bucket_transactions(&bucket_transactions, connection) + .unwrap(); + + assert_eq!(num_bucket_transactions_inserted, 2); +} + +#[test] +fn given_bucket_transactions_when_get_all_bucket_transactions_then_return_bucket_transactions() { + 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_transactions = [ + make_fake_bucket_transaction_builder(0) + .bucket_id(0) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(1) + .bucket_id(1) + .build() + .unwrap(), + ]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + let _ = + queries::bucket_transactions::insert_bucket_transactions(&bucket_transactions, connection) + .unwrap(); + + let bucket_transactions_in_db = + queries::bucket_transactions::get_all_bucket_transactions(connection).unwrap(); + + assert_eq!(bucket_transactions_in_db.len(), bucket_transactions.len()); + for bucket_transaction in &bucket_transactions { + assert!(bucket_transactions_in_db + .iter() + .any(|bucket_transaction_in_db| bucket_transaction_in_db.eq(&bucket_transaction))); + } + for bucket_transaction_in_db in bucket_transactions_in_db { + assert!(bucket_transactions + .iter() + .any(|bucket_transaction| bucket_transaction.eq(&bucket_transaction_in_db))); + } +} + +#[test] +fn given_bucket_transactions_when_delete_all_bucket_transactions_then_return_num_of_bucket_transactions( +) { + 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_transactions = [ + make_fake_bucket_transaction_builder(0) + .bucket_id(0) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(1) + .bucket_id(1) + .build() + .unwrap(), + ]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + let _ = + queries::bucket_transactions::insert_bucket_transactions(&bucket_transactions, connection) + .unwrap(); + + let num_bucket_transactions_deleted = + queries::bucket_transactions::delete_all_bucket_transactions(connection).unwrap(); + + assert_eq!(num_bucket_transactions_deleted, bucket_transactions.len()); +} + +#[test] +fn given_deleted_bucket_transactions_when_get_all_bucket_transactions_then_return_empty() { + 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_transactions = [ + make_fake_bucket_transaction_builder(0) + .bucket_id(0) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(1) + .bucket_id(1) + .build() + .unwrap(), + ]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + let _ = + queries::bucket_transactions::insert_bucket_transactions(&bucket_transactions, connection) + .unwrap(); + let _ = queries::bucket_transactions::delete_all_bucket_transactions(connection).unwrap(); + + let bucket_transactions_returned = + queries::bucket_transactions::get_all_bucket_transactions(connection).unwrap(); + + assert_eq!(bucket_transactions_returned.len(), 0); +} + +#[test] +fn given_bucket_transactions_when_sum_amount_per_bucket_id_then_returns_sum_per_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_transactions = [ + make_fake_bucket_transaction_builder(0) + .bucket_id(0) + .amount(1) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(1) + .bucket_id(0) + .amount(2) + .build() + .unwrap(), + make_fake_bucket_transaction_builder(2) + .bucket_id(1) + .amount(4) + .build() + .unwrap(), + ]; + let _ = queries::buckets::insert_buckets(&buckets, connection); + let _ = + queries::bucket_transactions::insert_bucket_transactions(&bucket_transactions, connection) + .unwrap(); + + let sums = + queries::bucket_transactions::sum_bucket_transaction_amount_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/categories.rs b/schist_core/schist_queries/tests/buckets.rs index 72dd4c7..72dd4c7 100644 --- a/schist_core/schist_queries/tests/categories.rs +++ b/schist_core/schist_queries/tests/buckets.rs diff --git a/schist_core/schist_queries/tests/category_transfers.rs b/schist_core/schist_queries/tests/category_transfers.rs deleted file mode 100644 index f7c75a7..0000000 --- a/schist_core/schist_queries/tests/category_transfers.rs +++ /dev/null @@ -1,201 +0,0 @@ -mod common; - -use common::test_context::TestContext; -use diesel::{Connection, SqliteConnection}; -use schist_fakes::{bucket::make_fake_bucket, bucket_transfer::make_fake_bucket_transfer_builder}; -use schist_queries as queries; - -#[test] -fn when_insert_bucket_transfers_then_returns_num_bucket_transfers() { - 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) - .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(); - - assert_eq!(num_bucket_transfers_inserted, 2); -} - -#[test] -fn given_bucket_transfers_when_get_all_bucket_transfers_then_return_bucket_transfers() { - 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) - .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 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))); - } - for bucket_transfer_in_db in bucket_transfers_in_db { - assert!(bucket_transfers - .iter() - .any(|bucket_transfer| bucket_transfer.eq(&bucket_transfer_in_db))); - } -} - -#[test] -fn given_bucket_transfers_when_delete_all_bucket_transfers_then_return_num_of_bucket_transfers() { - 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) - .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 num_bucket_transfers_deleted = - queries::bucket_transfers::delete_all_bucket_transfers(connection).unwrap(); - - assert_eq!(num_bucket_transfers_deleted, bucket_transfers.len()); -} - -#[test] -fn given_deleted_bucket_transfers_when_get_all_bucket_transfers_then_return_empty() { - 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) - .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::delete_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() -{ - 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) - .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 sums = - queries::bucket_transfers::sum_bucket_transfer_quantity_per_from_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); -} - -#[test] -fn given_bucket_transfers_when_sum_quantity_per_to_bucket_id_then_returns_sum_per_to_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) - .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 sums = queries::bucket_transfers::sum_bucket_transfer_quantity_per_to_bucket_id(connection); - - assert!(sums.is_ok()); - let mut sums = sums.unwrap(); - sums.sort_by_key(|sum| sum.0); - assert_eq!([(0, 4), (1, 3)], sums.as_slice()); -} diff --git a/schist_core/schist_queries/tests/pipes.rs b/schist_core/schist_queries/tests/pipes.rs index 9203aa3..f883fe6 100644 --- a/schist_core/schist_queries/tests/pipes.rs +++ b/schist_core/schist_queries/tests/pipes.rs @@ -115,7 +115,7 @@ fn given_deleted_pipes_when_get_all_pipes_then_return_empty() { } #[test] -fn given_pipes_when_sum_quantity_per_bucket_id_then_returns_sum_quantity_per_bucket_id() { +fn given_pipes_when_sum_amount_per_bucket_id_then_returns_sum_amount_per_bucket_id() { let context = TestContext::new(); let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); given_accounts(connection); |
