diff options
| author | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
| commit | 54894f9de9bad4fecb2a116d59a03cdd003f84c0 (patch) | |
| tree | 6ce5517cecf23d4e93d7a381a374e1fa6c810cee /actualbudget_to_schist_transformer/tests/common/account_transfer_matchers.rs | |
| parent | 8a30bcbdf9264d235bf93da3df8e170cfde53d02 (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.rs | 45 |
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, + } +} |
