diff options
Diffstat (limited to 'backend/core/src/utils')
| -rw-r--r-- | backend/core/src/utils/calculate_category_balance.rs | 28 | ||||
| -rw-r--r-- | backend/core/src/utils/find_by_id_or.rs | 22 |
2 files changed, 19 insertions, 31 deletions
diff --git a/backend/core/src/utils/calculate_category_balance.rs b/backend/core/src/utils/calculate_category_balance.rs index 296b9de..61b94a8 100644 --- a/backend/core/src/utils/calculate_category_balance.rs +++ b/backend/core/src/utils/calculate_category_balance.rs @@ -6,9 +6,9 @@ use crate::{ pub fn calculate_category_balance( category: &Category, - transaction_sums: &[(i32, Option<i64>)], - category_transfer_from_sums: &[(i32, Option<i64>)], - category_transfer_to_sums: &[(i32, Option<i64>)], + transaction_sums: &[(i32, i64)], + category_transfer_from_sums: &[(i32, i64)], + category_transfer_to_sums: &[(i32, i64)], budget_updates: &[BudgetUpdate], ) -> Result<i64> { let transaction_sum = find_by_id_or(transaction_sums, category.id, 0); @@ -52,9 +52,9 @@ mod test { id: 0, name: String::new(), }; - let transaction_sums = [(1, Some(100))]; - let category_transfer_from_sums = [(1, Some(91))]; - let category_transfer_to_sums = [(2, Some(79))]; + let transaction_sums = [(1, 100)]; + let category_transfer_from_sums = [(1, 91)]; + let category_transfer_to_sums = [(2, 79)]; let budget_updates = [BudgetUpdate { id: 0, category_id: 1, @@ -76,12 +76,12 @@ mod test { } #[test] - fn when_transaction_sum_is_none_then_returns_zero() { + fn when_transaction_sum_is_zero_then_returns_zero() { let category = Category { id: 0, name: String::new(), }; - let transaction_sums = [(0, None)]; + let transaction_sums = [(0, 0)]; let category_transfer_from_sums = []; let category_transfer_to_sums = []; let budget_updates = []; @@ -99,14 +99,14 @@ mod test { } #[test] - fn when_category_transfers_are_none_then_returns_zero() { + fn when_category_transfers_are_zero_then_returns_zero() { let category = Category { id: 0, name: String::new(), }; let transaction_sums = []; - let category_transfer_from_sums = [(0, None)]; - let category_transfer_to_sums = [(0, None)]; + let category_transfer_from_sums = [(0, 0)]; + let category_transfer_to_sums = [(0, 0)]; let budget_updates = []; let result = calculate_category_balance( @@ -127,9 +127,9 @@ mod test { id: 0, name: String::new(), }; - let transaction_sums = [(0, Some(100))]; - let category_transfer_from_sums = [(0, Some(91))]; - let category_transfer_to_sums = [(0, Some(79))]; + let transaction_sums = [(0, 100)]; + let category_transfer_from_sums = [(0, 91)]; + let category_transfer_to_sums = [(0, 79)]; let budget_updates = [BudgetUpdate { id: 0, category_id: 0, diff --git a/backend/core/src/utils/find_by_id_or.rs b/backend/core/src/utils/find_by_id_or.rs index f5add30..8335e5c 100644 --- a/backend/core/src/utils/find_by_id_or.rs +++ b/backend/core/src/utils/find_by_id_or.rs @@ -1,14 +1,11 @@ pub fn find_by_id_or<Id: PartialEq, Val: Copy>( - arr: &[(Id, Option<Val>)], + arr: &[(Id, Val)], id: Id, default: Val, ) -> Val { arr.iter() .find(|(elem_id, _)| *elem_id == id) - .map_or(default, |row| match row { - (_, Some(quantity)) => *quantity, - (_, _) => default, - }) + .map_or(default, |row| row.1) } #[cfg(test)] @@ -26,7 +23,7 @@ mod test { #[test] fn when_id_not_in_elements_then_return_default() { - let arr = [(0, Some(100)), (2, Some(200))]; + let arr = [(0, 100), (2, 200)]; let result = find_by_id_or(&arr, 1, 42); @@ -34,17 +31,8 @@ mod test { } #[test] - fn when_value_is_none_then_return_default() { - let arr = [(1, None)]; - - let result = find_by_id_or(&arr, 1, 42); - - assert_eq!(result, 42); - } - - #[test] - fn when_value_is_some_then_return_value() { - let arr = [(1, Some(67))]; + fn when_id_in_elements_then_return_value() { + let arr = [(1, 67)]; let result = find_by_id_or(&arr, 1, 42); |
