pub mod common; use actualbudget_queries::actualbudget_zero_budgets::{get_all_actualbudget_zero_budgets, get_first_zero_budget_date}; use common::{db_url::DB_URL, get_reference_data::get_categories, zero_budget_matchers::get_zero_budget_matchers}; use diesel::{Connection, SqliteConnection}; #[test] fn given_test_database_when_get_all_zero_budgets_then_return_zero_budgets() { let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); let categories = get_categories(connection); let zero_budgets = get_all_actualbudget_zero_budgets(connection); assert!(zero_budgets.is_ok()); let zero_budgets = zero_budgets.unwrap(); let zero_budget_matchers = get_zero_budget_matchers(); assert_eq!(zero_budget_matchers.len(), zero_budgets.len()); for matcher in zero_budget_matchers { assert!(zero_budgets.iter().any(|zb| matcher(zb, &categories))) } } #[test] fn given_test_database_when_get_first_zero_budget_date_then_return_1_aug_2024() { let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); let date = get_first_zero_budget_date(connection); assert!(date.is_ok()); let date = date.unwrap(); assert_eq!("01", date.day()); assert_eq!("08", date.month()); assert_eq!("2024", date.year()); }