#[derive(Debug, Clone)]
pub struct NetworkSession {
pub id: String,
pub service_id: String,
}
impl NetworkSession {
pub fn new(id: String, service_id: String) -> Self {
Self { id, service_id }
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_network_session_creation() {
let id = "test-session-id".to_string();
let service_id = "test-service-id".to_string();
let session = NetworkSession::new(id.clone(), service_id.clone());
assert_eq!(session.id, id);
assert_eq!(session.service_id, service_id);
}
#[test]
fn test_network_session_clone() {
let session = NetworkSession::new(
"session-123".to_string(),
"service-456".to_string(),
);
let cloned_session = session.clone();
assert_eq!(session.id, cloned_session.id);
assert_eq!(session.service_id, cloned_session.service_id);
}
#[test]
fn test_network_session_debug() {
let session = NetworkSession::new(
"debug-session".to_string(),
"debug-service".to_string(),
);
let debug_str = format!("{:?}", session);
assert!(debug_str.contains("NetworkSession"));
assert!(debug_str.contains("debug-session"));
assert!(debug_str.contains("debug-service"));
}
#[test]
fn test_network_session_with_empty_strings() {
let session = NetworkSession::new(String::new(), String::new());
assert_eq!(session.id, "");
assert_eq!(session.service_id, "");
}
#[test]
fn test_network_session_with_special_characters() {
let special_id = "session-123-!@#$%".to_string();
let special_service_id = "service-456-&*()".to_string();
let session = NetworkSession::new(special_id.clone(), special_service_id.clone());
assert_eq!(session.id, special_id);
assert_eq!(session.service_id, special_service_id);
}
}