diff options
| author | Joe Carstairs <me@joeac.net> | 2024-11-21 21:21:03 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-11-21 21:21:03 +0000 |
| commit | 6174d31572fb4d6582029a6ec2ea4391d704a7cb (patch) | |
| tree | 4369e7958bc15de7c947a8507f968f752241087f /rust/actualbudget_queries/tests/common/get_reference_data.rs | |
| parent | 4967cbabfc2fddc903dfaa17b11b2baa006fb218 (diff) | |
Wicked cool actualbudget transaction integration testing
Diffstat (limited to 'rust/actualbudget_queries/tests/common/get_reference_data.rs')
| -rw-r--r-- | rust/actualbudget_queries/tests/common/get_reference_data.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/rust/actualbudget_queries/tests/common/get_reference_data.rs b/rust/actualbudget_queries/tests/common/get_reference_data.rs new file mode 100644 index 0000000..d317a00 --- /dev/null +++ b/rust/actualbudget_queries/tests/common/get_reference_data.rs @@ -0,0 +1,45 @@ +use std::collections::HashMap; + +use actualbudget_models::{actualbudget_account::ActualbudgetAccount, actualbudget_category::ActualbudgetCategory}; +use actualbudget_queries::{actualbudget_accounts::get_all_actualbudget_accounts, actualbudget_categories::get_all_actualbudget_categories, actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}}; +use diesel::SqliteConnection; + +use super::{account_names::ACCOUNT_NAMES, category_names::CATEGORY_NAMES}; + +pub fn get_accounts(connection: &mut SqliteConnection) -> HashMap<String, ActualbudgetAccount> { + let accounts = get_all_actualbudget_accounts(connection).expect("failed to get accounts"); + let mut accounts_hash_map = HashMap::new(); + + for &account_name in ACCOUNT_NAMES { + let account = accounts + .clone() + .into_iter() + .find(|a| a.name.as_str() == account_name) + .expect(&format!("failed to get account: {}", account_name)); + accounts_hash_map.insert( + String::from(account_name), + account, + ); + } + + accounts_hash_map +} + +pub fn get_categories(connection: &mut SqliteConnection) -> HashMap<String, ActualbudgetCategory> { + let categories = get_all_actualbudget_categories(connection).expect("failed to get categories"); + let mut categories_hash_map = HashMap::new(); + + for &category_name in CATEGORY_NAMES { + let category = categories + .clone() + .into_iter() + .find(|a| a.name.as_str() == category_name) + .expect(&format!("failed to get category: {}", category_name)); + categories_hash_map.insert( + String::from(category_name), + category, + ); + } + + categories_hash_map +} |
