summaryrefslogtreecommitdiff
path: root/rust/actualbudget_queries/tests/common/get_reference_data.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-11-21 21:21:03 +0000
committerJoe Carstairs <me@joeac.net>2024-11-21 21:21:03 +0000
commit6174d31572fb4d6582029a6ec2ea4391d704a7cb (patch)
tree4369e7958bc15de7c947a8507f968f752241087f /rust/actualbudget_queries/tests/common/get_reference_data.rs
parent4967cbabfc2fddc903dfaa17b11b2baa006fb218 (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.rs45
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
+}