From 70b326ddbe47fbec3d6516fa223ecde41988a5d2 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sat, 17 Jan 2026 07:47:36 +0000 Subject: ActualbudgetDate::from_ymd() --- .../actualbudget_models/src/actualbudget_date.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'transformers') diff --git a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs index aaab5e8..08b648e 100644 --- a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs +++ b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs @@ -54,6 +54,15 @@ impl ActualbudgetDate { ActualbudgetDate(i.into()) } + pub fn from_ymd(year: T, month: S, day: U) -> Self + where + T: Into, + S: Into, + U: Into, + { + Self(year.into() * 10_000 + month.into() * 100 + day.into()) + } + fn date_part(&self) -> DatePart { if self.0 < 10000000 { DatePart::MonthOfYear @@ -88,3 +97,16 @@ impl FromSql for ActualbudgetDate { Ok(ActualbudgetDate(int.into())) } } + +#[cfg(test)] +mod test { + use crate::ActualbudgetDate; + + #[test] + fn when_from_ymd_2026_01_16_then_constructs_2026_01_16() { + let actualbudget_date = ActualbudgetDate::from_ymd(2026, 1, 16); + assert_eq!(actualbudget_date.year(), "2026"); + assert_eq!(actualbudget_date.month(), "01"); + assert_eq!(actualbudget_date.day(), "16"); + } +} -- cgit v1.2.3