diff options
Diffstat (limited to 'schist_queries/src/utils/calculate_budgets_accrual.rs')
| -rw-r--r-- | schist_queries/src/utils/calculate_budgets_accrual.rs | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/schist_queries/src/utils/calculate_budgets_accrual.rs b/schist_queries/src/utils/calculate_budgets_accrual.rs deleted file mode 100644 index ca82953..0000000 --- a/schist_queries/src/utils/calculate_budgets_accrual.rs +++ /dev/null @@ -1,72 +0,0 @@ -use anyhow::Result; -use schist_models::{ - budget_drip::BudgetDrip, - category::Category, -}; - -pub fn calculate_budgets_accrual(category: &Category, budget_drips: &[BudgetDrip]) -> Result<i64> { - Ok(budget_drips - .iter() - .filter(|bd| bd.category_id == category.id) - .map(|bd| Into::<i64>::into(bd.quantity)) - .sum() - ) -} - -#[cfg(test)] -mod test { - use schist_fakes::{budget_drip::make_fake_budget_drip_builder, category::make_fake_category}; - - use super::calculate_budgets_accrual; - - #[test] - fn when_no_budget_drips_then_return_zero() { - let category = make_fake_category(0); - let budget_drips = []; - - let result = calculate_budgets_accrual(&category, &budget_drips); - - assert!(result.is_ok()); - assert_eq!(result.unwrap(), 0_i64); - } - - #[test] - fn when_one_budget_drip_for_another_category_then_return_zero() { - let category = make_fake_category(0); - let budget_drips = [ - make_fake_budget_drip_builder(0).quantity(100).category_id(1).build().unwrap(), - ]; - - let result = calculate_budgets_accrual(&category, &budget_drips); - - assert!(result.is_ok()); - assert_eq!(result.unwrap(), 0_i64); - } - - #[test] - fn when_one_budget_drip_then_return_quantity() { - let category = make_fake_category(0); - let budget_drips = [ - make_fake_budget_drip_builder(0).quantity(100).category_id(0).build().unwrap(), - ]; - - let result = calculate_budgets_accrual(&category, &budget_drips); - - assert!(result.is_ok()); - assert_eq!(result.unwrap(), 100); - } - - #[test] - fn when_two_budget_drips_then_return_sum() { - let category = make_fake_category(0); - let budget_drips = [ - make_fake_budget_drip_builder(0).quantity(100).category_id(0).build().unwrap(), - make_fake_budget_drip_builder(1).quantity(120).category_id(0).build().unwrap(), - ]; - - let result = calculate_budgets_accrual(&category, &budget_drips); - - assert!(result.is_ok()); - assert_eq!(result.unwrap(), 220); - } -} |
