use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
#[derive(Default)]
pub struct EmailConfig {
pub msg_fallback_codepage: Option<u32>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_email_config_default() {
let config = EmailConfig::default();
assert!(config.msg_fallback_codepage.is_none());
}
#[test]
fn test_email_config_serde_roundtrip() {
let json = r#"{"msg_fallback_codepage": 1251}"#;
let config: EmailConfig = serde_json::from_str(json).unwrap();
assert_eq!(config.msg_fallback_codepage, Some(1251));
let serialized = serde_json::to_string(&config).unwrap();
let roundtripped: EmailConfig = serde_json::from_str(&serialized).unwrap();
assert_eq!(roundtripped.msg_fallback_codepage, Some(1251));
}
#[test]
fn test_email_config_serde_default_omitted() {
let json = r#"{}"#;
let config: EmailConfig = serde_json::from_str(json).unwrap();
assert!(config.msg_fallback_codepage.is_none());
}
}