summaryrefslogtreecommitdiff
path: root/rust/actualbudget_to_schist_transformer/tests/common
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-06 14:03:05 +0000
committerJoe Carstairs <me@joeac.net>2024-12-06 14:41:50 +0000
commitb87f6e7a90c371bb51e5f2bb93b2a2b79ffeff10 (patch)
treeeaf310ce7513c335343935cde3e17ef8e8a6c60f /rust/actualbudget_to_schist_transformer/tests/common
parent69a6c9d9f7eaed9e1ddfd8819bf52e64d1368854 (diff)
Tests AB category transfers transform
Diffstat (limited to 'rust/actualbudget_to_schist_transformer/tests/common')
-rw-r--r--rust/actualbudget_to_schist_transformer/tests/common/category_transfer_matchers.rs38
1 files changed, 35 insertions, 3 deletions
diff --git a/rust/actualbudget_to_schist_transformer/tests/common/category_transfer_matchers.rs b/rust/actualbudget_to_schist_transformer/tests/common/category_transfer_matchers.rs
index c7f5c87..6d11c8a 100644
--- a/rust/actualbudget_to_schist_transformer/tests/common/category_transfer_matchers.rs
+++ b/rust/actualbudget_to_schist_transformer/tests/common/category_transfer_matchers.rs
@@ -1,6 +1,38 @@
-use schist_models::category_transfer::CategoryTransfer;
+use schist_models::{category::Category, category_transfer::CategoryTransfer};
+
+use super::category_names::{CATEGORY_NAME_GENERAL, CATEGORY_NAME_SAVINGS};
pub fn get_category_transfer_matchers(
-) -> Vec<Box<dyn Fn(&CategoryTransfer) -> bool>> {
- todo!()
+) -> Vec<Box<dyn Fn(&CategoryTransfer, &[Category]) -> bool>> {
+ vec![
+ Box::new(|ct, c| matches_120_savings_to_general_23_oct_2024(ct, c)),
+ ]
+}
+
+fn matches_120_savings_to_general_23_oct_2024(
+ category_transfer: &CategoryTransfer,
+ categories: &[Category],
+) -> bool {
+ let savings_category = categories
+ .iter()
+ .find(|c| c.name == CATEGORY_NAME_SAVINGS)
+ .expect("failed to find savings category");
+
+ let general_category = categories
+ .iter()
+ .find(|c| c.name == CATEGORY_NAME_GENERAL)
+ .expect("failed to find general category");
+
+ match category_transfer {
+ CategoryTransfer {
+ id: _id,
+ description,
+ quantity: 120_00,
+ from_category_id,
+ to_category_id,
+ } => *from_category_id == savings_category.id
+ && *to_category_id == general_category.id
+ && description.as_str() == "",
+ _ => false,
+ }
}