#[cfg(test)]
mod tests {
use crate::config::{PortMapping, Protocol};
#[test]
fn test_port_mapping_serialization() {
let mapping = PortMapping {
id: "test-port".to_string(),
local_port: 8080,
remote_port: 80,
protocol: Protocol::Tcp,
description: "Test web server".to_string(),
enabled: true,
};
let toml = toml::to_string_pretty(&mapping).unwrap();
assert!(toml.contains("test-port"));
assert!(toml.contains("8080"));
assert!(toml.contains("tcp"));
let deserialized: PortMapping = toml::from_str(&toml).unwrap();
assert_eq!(deserialized.id, "test-port");
assert_eq!(deserialized.local_port, 8080);
assert_eq!(deserialized.remote_port, 80);
assert_eq!(deserialized.protocol, Protocol::Tcp);
}
#[test]
fn test_protocol_from_str() {
assert_eq!("tcp".parse::<Protocol>().unwrap(), Protocol::Tcp);
assert_eq!("udp".parse::<Protocol>().unwrap(), Protocol::Udp);
assert!("xyz".parse::<Protocol>().is_err());
}
#[test]
fn test_protocol_display() {
assert_eq!(Protocol::Tcp.to_string(), "tcp");
assert_eq!(Protocol::Udp.to_string(), "udp");
}
}