Added time::parser tests for basuc format
This commit is contained in:
parent
de27339b73
commit
931d384e05
1 changed files with 79 additions and 7 deletions
|
@ -327,7 +327,7 @@ impl<'a> Parser<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => return Err(Error::Truncated),
|
_ => {}
|
||||||
}
|
}
|
||||||
if self.year.is_none() || self.month.is_none() || self.day.is_none() {
|
if self.year.is_none() || self.month.is_none() || self.day.is_none() {
|
||||||
return Err(Error::Truncated);
|
return Err(Error::Truncated);
|
||||||
|
@ -349,7 +349,7 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_utc() {
|
fn parse_extended_utc() {
|
||||||
let parser = Parser::new("2023-05-09T19:39:15Z");
|
let parser = Parser::new("2023-05-09T19:39:15Z");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert_eq!(dt.year, 2023);
|
assert_eq!(dt.year, 2023);
|
||||||
|
@ -362,7 +362,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_positive() {
|
fn parse_extended_positive() {
|
||||||
let parser = Parser::new("2023-05-09T19:39:15+05:15");
|
let parser = Parser::new("2023-05-09T19:39:15+05:15");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert_eq!(dt.year, 2023);
|
assert_eq!(dt.year, 2023);
|
||||||
|
@ -382,7 +382,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_negative() {
|
fn parse_extended_negative() {
|
||||||
let parser = Parser::new("2023-05-09T19:39:15-05");
|
let parser = Parser::new("2023-05-09T19:39:15-05");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert_eq!(dt.year, 2023);
|
assert_eq!(dt.year, 2023);
|
||||||
|
@ -402,7 +402,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_no_seconds() {
|
fn parse_extended_no_seconds() {
|
||||||
let parser = Parser::new("2023-05-09T19:39-05");
|
let parser = Parser::new("2023-05-09T19:39-05");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert!(dt.second.is_none());
|
assert!(dt.second.is_none());
|
||||||
|
@ -417,7 +417,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_no_minutes() {
|
fn parse_extended_no_minutes() {
|
||||||
let parser = Parser::new("2023-05-09T19-05");
|
let parser = Parser::new("2023-05-09T19-05");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert!(dt.second.is_none());
|
assert!(dt.second.is_none());
|
||||||
|
@ -433,11 +433,83 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_full_no_time() {
|
fn parse_extended_no_time() {
|
||||||
let parser = Parser::new("2023-05-09");
|
let parser = Parser::new("2023-05-09");
|
||||||
let dt = parser.parse().unwrap();
|
let dt = parser.parse().unwrap();
|
||||||
assert!(dt.second.is_none());
|
assert!(dt.second.is_none());
|
||||||
assert!(dt.minute.is_none());
|
assert!(dt.minute.is_none());
|
||||||
assert!(dt.tz.is_none());
|
assert!(dt.tz.is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_basic_utc() {
|
||||||
|
let parser = Parser::new("20230407T114230Z");
|
||||||
|
let dt = parser.parse().unwrap();
|
||||||
|
assert_eq!(dt.year, 2023);
|
||||||
|
assert_eq!(dt.month, 4);
|
||||||
|
assert_eq!(dt.day, 7);
|
||||||
|
assert_eq!(dt.hour, Some(11));
|
||||||
|
assert_eq!(dt.minute, Some(42));
|
||||||
|
assert_eq!(dt.second, Some(30));
|
||||||
|
assert_eq!(dt.tz, Some(TimeZone::UTC));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_basic_positive() {
|
||||||
|
let parser = Parser::new("20230407T114230+0520");
|
||||||
|
let dt = parser.parse().unwrap();
|
||||||
|
assert_eq!(
|
||||||
|
dt.tz,
|
||||||
|
Some(TimeZone::Offset(Offset {
|
||||||
|
sign: Sign::Positive,
|
||||||
|
hours: 5,
|
||||||
|
minutes: Some(20)
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_basic_negative() {
|
||||||
|
let parser = Parser::new("20230407T114230-0520");
|
||||||
|
let dt = parser.parse().unwrap();
|
||||||
|
assert_eq!(
|
||||||
|
dt.tz,
|
||||||
|
Some(TimeZone::Offset(Offset {
|
||||||
|
sign: Sign::Negative,
|
||||||
|
hours: 5,
|
||||||
|
minutes: Some(20)
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_basic_no_seconds() {
|
||||||
|
let parser = Parser::new("20230407T1142-0520");
|
||||||
|
let dt = parser.parse().unwrap();
|
||||||
|
assert!(dt.second.is_none());
|
||||||
|
assert_eq!(
|
||||||
|
dt.tz,
|
||||||
|
Some(TimeZone::Offset(Offset {
|
||||||
|
sign: Sign::Negative,
|
||||||
|
hours: 5,
|
||||||
|
minutes: Some(20)
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_basic_no_minutes() {
|
||||||
|
let parser = Parser::new("20230407T11-05");
|
||||||
|
let dt = parser.parse().unwrap();
|
||||||
|
assert!(dt.second.is_none());
|
||||||
|
assert!(dt.minute.is_none());
|
||||||
|
assert_eq!(
|
||||||
|
dt.tz,
|
||||||
|
Some(TimeZone::Offset(Offset {
|
||||||
|
sign: Sign::Negative,
|
||||||
|
hours: 5,
|
||||||
|
minutes: None
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue