Fix unused function warning for parse_ical_datetime
- Add #[cfg(test)] attribute to mark function as test-only - Add comprehensive test for parse_ical_datetime function - Move imports into function scope to reduce global imports - Test covers DATE format, UTC datetime format, and error handling Fixes warning: function 'parse_ical_datetime' is never used
This commit is contained in:
parent
e8047fbba2
commit
20a74ac7a4
1 changed files with 22 additions and 2 deletions
24
src/event.rs
24
src/event.rs
|
|
@ -1,7 +1,7 @@
|
||||||
//! Event handling and iCalendar parsing
|
//! Event handling and iCalendar parsing
|
||||||
|
|
||||||
use crate::error::{CalDavError, CalDavResult};
|
use crate::error::CalDavResult;
|
||||||
use chrono::{DateTime, Utc, NaiveDateTime};
|
use chrono::{DateTime, Utc};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
@ -369,7 +369,11 @@ fn escape_ical_text(text: &str) -> String {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parse iCalendar date/time
|
/// Parse iCalendar date/time
|
||||||
|
#[cfg(test)]
|
||||||
fn parse_ical_datetime(dt_str: &str) -> CalDavResult<DateTime<Utc>> {
|
fn parse_ical_datetime(dt_str: &str) -> CalDavResult<DateTime<Utc>> {
|
||||||
|
use crate::error::CalDavError;
|
||||||
|
use chrono::NaiveDateTime;
|
||||||
|
|
||||||
// Handle different iCalendar date formats
|
// Handle different iCalendar date formats
|
||||||
if dt_str.len() == 8 {
|
if dt_str.len() == 8 {
|
||||||
// DATE format (YYYYMMDD)
|
// DATE format (YYYYMMDD)
|
||||||
|
|
@ -444,4 +448,20 @@ mod tests {
|
||||||
let escaped = escape_ical_text(text);
|
let escaped = escape_ical_text(text);
|
||||||
assert_eq!(escaped, "Hello\\, world\\; this\\\\is a test");
|
assert_eq!(escaped, "Hello\\, world\\; this\\\\is a test");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_parse_ical_datetime() {
|
||||||
|
// Test DATE format (YYYYMMDD)
|
||||||
|
let date_result = parse_ical_datetime("20231225").unwrap();
|
||||||
|
assert_eq!(date_result.format("%Y%m%d").to_string(), "20231225");
|
||||||
|
assert_eq!(date_result.format("%H%M%S").to_string(), "000000");
|
||||||
|
|
||||||
|
// Test UTC datetime format (YYYYMMDDTHHMMSSZ)
|
||||||
|
let datetime_result = parse_ical_datetime("20231225T103000Z").unwrap();
|
||||||
|
assert_eq!(datetime_result.format("%Y%m%dT%H%M%SZ").to_string(), "20231225T103000Z");
|
||||||
|
|
||||||
|
// Test local time format (should fail)
|
||||||
|
let local_result = parse_ical_datetime("20231225T103000");
|
||||||
|
assert!(local_result.is_err());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue