ziti-sdk 0.3.0

Ziti Rust SDK - High-performance, async-first implementation for secure, zero-trust networking
Documentation
//! Network session implementation
//!
//! Handles service network sessions for data connections.

/// Network session for service connections
#[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);
    }
}