summaryrefslogtreecommitdiff
path: root/actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-12 08:28:04 +0000
committerJoe Carstairs <me@joeac.net>2024-12-12 08:28:04 +0000
commit54894f9de9bad4fecb2a116d59a03cdd003f84c0 (patch)
tree6ce5517cecf23d4e93d7a381a374e1fa6c810cee /actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs
parent8a30bcbdf9264d235bf93da3df8e170cfde53d02 (diff)
Moves rust workspace to root
Diffstat (limited to 'actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs')
-rw-r--r--actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs b/actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs
new file mode 100644
index 0000000..ea3180e
--- /dev/null
+++ b/actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs
@@ -0,0 +1,45 @@
+use anyhow::Context;
+use schist_models::{account::Account, account_transfer::AccountTransfer};
+
+use super::ACCOUNT_NAMES_DICT;
+
+pub fn get_account_transfer_matchers(
+) -> Vec<Box<dyn Fn(&AccountTransfer, &[Account]) -> bool>> {
+ vec![
+ Box::new(|at, a| matches_cash_withdrawal_10_sept_2024(at, a)),
+ ]
+}
+
+fn matches_cash_withdrawal_10_sept_2024(
+ account_transfer: &AccountTransfer,
+ accounts: &[Account],
+) -> bool {
+ let bank_account = accounts
+ .iter()
+ .filter(|a| a.name == ACCOUNT_NAMES_DICT.bank_account)
+ .next()
+ .with_context(|| "failed to find bank account")
+ .unwrap();
+
+ let cash_account = accounts
+ .iter()
+ .filter(|a| a.name == ACCOUNT_NAMES_DICT.cash_account)
+ .next()
+ .with_context(|| "failed to find cash account")
+ .unwrap();
+
+ match account_transfer {
+ AccountTransfer {
+ id: _id,
+ date,
+ description,
+ quantity: 80_00,
+ from_account_id,
+ to_account_id,
+ } => *date == "2024-09-10".parse().unwrap()
+ && *description == ""
+ && *from_account_id == bank_account.id
+ && *to_account_id == cash_account.id,
+ _ => false,
+ }
+}