mirror of
https://github.com/TECHNOFAB11/jwt-authorizer.git
synced 2025-12-11 23:50:07 +01:00
refactor: NumericDate.inner replaced by From<NumericDate>
- "inner" should be inner and not public, I think From trait implementation looks nicer - tests added
This commit is contained in:
parent
157cdfa396
commit
a869c25538
1 changed files with 22 additions and 5 deletions
|
|
@ -1,13 +1,14 @@
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
/// Seconds since the epoch
|
/// The number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time ignoring leap seconds.
|
||||||
|
/// (https://www.rfc-editor.org/rfc/rfc7519#section-2)
|
||||||
#[derive(Deserialize, Clone, PartialEq, Eq, Debug)]
|
#[derive(Deserialize, Clone, PartialEq, Eq, Debug)]
|
||||||
pub struct NumericDate(i64);
|
pub struct NumericDate(i64);
|
||||||
|
|
||||||
impl NumericDate {
|
/// accesses the underlying value
|
||||||
/// Get the underlying unix timestamp
|
impl From<NumericDate> for i64 {
|
||||||
pub fn inner(&self) -> i64 {
|
fn from(t: NumericDate) -> Self {
|
||||||
self.0
|
t.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,11 +107,27 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn from_numeric_date() {
|
fn from_numeric_date() {
|
||||||
|
let exp: i64 = NumericDate(1516239022).into();
|
||||||
|
assert_eq!(exp, 1516239022);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn chrono_from_numeric_date() {
|
||||||
let exp: DateTime<Utc> = NumericDate(1516239022).into();
|
let exp: DateTime<Utc> = NumericDate(1516239022).into();
|
||||||
assert_eq!(exp, Utc.timestamp_opt(1516239022, 0).unwrap());
|
assert_eq!(exp, Utc.timestamp_opt(1516239022, 0).unwrap());
|
||||||
assert_eq!(exp, DateTime::parse_from_rfc3339("2018-01-18T01:30:22.000Z").unwrap());
|
assert_eq!(exp, DateTime::parse_from_rfc3339("2018-01-18T01:30:22.000Z").unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "time")]
|
||||||
|
#[test]
|
||||||
|
fn time_from_numeric_date() {
|
||||||
|
use time::macros::datetime;
|
||||||
|
use time::OffsetDateTime;
|
||||||
|
|
||||||
|
let exp: OffsetDateTime = NumericDate(1516239022).into();
|
||||||
|
assert_eq!(exp, datetime!(2018-01-18 01:30:22 UTC));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn rfc_claims() {
|
fn rfc_claims() {
|
||||||
let jwt_json = json!({
|
let jwt_json = json!({
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue