#[cfg(test)] mod tests { extern crate cclm; extern crate dtt; use self::cclm::Claims; use self::dtt::DateTime; #[test] fn test_claims() { const CL_AUD: &str = "MINI-FUNCTIONS-CLAIMS-AUD"; const CL_CUSTOM: &str = "MINI-FUNCTIONS-CLAIMS-CUSTOM"; const CL_DID: &str = "MINI-FUNCTIONS-CLAIMS-DID"; const CL_ISS: &str = "MINI-FUNCTIONS-CLAIMS-ISS"; const CL_JTI: &str = "MINI-FUNCTIONS-CLAIMS-JTI"; const CL_SUB: &str = "MINI-FUNCTIONS-CLAIMS-SUB"; const CL_VC: &str = "MINI-FUNCTIONS-CLAIMS-VC"; const CL_VP: &str = "MINI-FUNCTIONS-CLAIMS-VP"; let date = DateTime::new(); let iso = date.iso_8601; let mut claims = Claims::new(); claims.set_claim("aud", CL_AUD); claims.set_claim("custom", CL_CUSTOM); claims.set_claim("did", CL_DID); claims.set_claim("exp", &iso); claims.set_claim("iat", &iso); claims.set_claim("iss", CL_ISS); claims.set_claim("jti", CL_JTI); claims.set_claim("nbf", &iso); claims.set_claim("sub", CL_SUB); claims.set_claim("vc", CL_VC); claims.set_claim("vp", CL_VP); assert_eq!(claims.get_claim("aud").unwrap(), CL_AUD); assert_eq!(claims.get_claim("custom").unwrap(), CL_CUSTOM); assert_eq!(claims.get_claim("did").unwrap(), CL_DID); assert_eq!(claims.get_claim("exp").unwrap(), &iso.to_string()); assert_eq!(claims.get_claim("iat").unwrap(), &iso.to_string()); assert_eq!(claims.get_claim("iss").unwrap(), CL_ISS); assert_eq!(claims.get_claim("jti").unwrap(), CL_JTI); assert_eq!(claims.get_claim("nbf").unwrap(), &iso.to_string()); assert_eq!(claims.get_claim("sub").unwrap(), CL_SUB); assert_eq!(claims.get_claim("vc").unwrap(), CL_VC); assert_eq!(claims.get_claim("vp").unwrap(), CL_VP); } #[test] fn test_get_claim() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); assert_eq!( claims.get_claim("aud").unwrap(), "MINI-FUNCTIONS-CLAIMS-AUD" ); assert!(claims.get_claim("non-existent-claim").is_none()); } #[test] fn test_remove_claim() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); claims.remove_claim("aud"); assert!(claims.get_claim("aud").is_none()); } #[test] fn test_clear_claims() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); claims.set_claim("custom", "MINI-FUNCTIONS-CLAIMS-CUSTOM"); claims.clear_claims(); assert_eq!(claims.len(), 0); } #[test] fn test_has_claim() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); assert!(claims.has_claim("aud")); assert!(!claims.has_claim("non-existent-claim")); } #[test] fn test_len() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); claims.set_claim("custom", "MINI-FUNCTIONS-CLAIMS-CUSTOM"); assert_eq!(claims.len(), 2); } #[test] fn test_is_empty() { let mut claims = Claims::new(); assert!(claims.is_empty()); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); assert!(!claims.is_empty()); } #[test] fn test_get_claims() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); claims.set_claim("custom", "MINI-FUNCTIONS-CLAIMS-CUSTOM"); let retrieved_claims = claims.get_claims(); assert_eq!( retrieved_claims.get("aud").unwrap(), "MINI-FUNCTIONS-CLAIMS-AUD" ); assert_eq!( retrieved_claims.get("custom").unwrap(), "MINI-FUNCTIONS-CLAIMS-CUSTOM" ); } #[test] fn test_display_trait() { let mut claims = Claims::new(); claims.set_claim("aud", "MINI-FUNCTIONS-CLAIMS-AUD"); claims.set_claim("custom", "MINI-FUNCTIONS-CLAIMS-CUSTOM"); let display_output = format!("{claims}"); assert!(display_output.contains("aud: MINI-FUNCTIONS-CLAIMS-AUD")); assert!(display_output.contains("custom: MINI-FUNCTIONS-CLAIMS-CUSTOM")); } #[test] fn test_default_trait() { let claims = Claims::default(); assert_eq!(claims.claims.len(), 0); } }