use super::*;
#[test]
fn test_router_creation() {
let router = BackendSelector::new();
assert_eq!(router.backend_count(), 0);
}
#[test]
fn test_add_backend() {
let mut router = BackendSelector::new();
let provider = create_test_provider();
let backend_id = router.add_backend(
ServerName::try_new("test-backend".to_string()).unwrap(),
provider,
0, );
assert_eq!(router.backend_count(), 1);
assert_eq!(backend_id, BackendId::from_index(0));
}
#[test]
fn test_add_multiple_backends() {
let mut router = BackendSelector::new();
for i in 0..3 {
let provider = create_test_provider();
let backend_id = router.add_backend(
ServerName::try_new(format!("backend-{i}")).unwrap(),
provider,
0, );
assert_eq!(backend_id, BackendId::from_index(i));
}
assert_eq!(router.backend_count(), 3);
}
#[test]
fn test_no_backends_fails() {
let router = BackendSelector::new();
let client_id = ClientId::new();
let result = router.route(nntp_proxy::router::RouteRequest::new(client_id));
assert!(result.is_err());
}
#[test]
fn test_get_backend_provider() {
let mut router = BackendSelector::new();
let backend_id = BackendId::from_index(0);
let provider = create_test_provider();
router.add_backend(
ServerName::try_new("test".to_string()).unwrap(),
provider,
0, );
let retrieved = router.backend_provider(backend_id);
assert!(retrieved.is_some());
let fake_id = BackendId::from_index(1);
assert!(router.backend_provider(fake_id).is_none());
}