summaryrefslogtreecommitdiff
path: root/actualbudget_queries/tests/actualbudget_zero_budgets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'actualbudget_queries/tests/actualbudget_zero_budgets.rs')
-rw-r--r--actualbudget_queries/tests/actualbudget_zero_budgets.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/actualbudget_queries/tests/actualbudget_zero_budgets.rs b/actualbudget_queries/tests/actualbudget_zero_budgets.rs
new file mode 100644
index 0000000..7218227
--- /dev/null
+++ b/actualbudget_queries/tests/actualbudget_zero_budgets.rs
@@ -0,0 +1,34 @@
+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());
+}