"""Tests for ClientManager.""" from i2p_router.client_manager import ClientManager, ClientSession def test_register_and_deliver(): received = [] session = ClientSession( dest_hash=b"\x01" * 32, on_message=lambda p: received.append(p), ) mgr = ClientManager() mgr.register_session(session) assert mgr.message_received(b"\x01" * 32, b"hello") is True assert received == [b"hello"] def test_deliver_to_unknown(): mgr = ClientManager() assert mgr.message_received(b"\x02" * 32, b"data") is False def test_unregister(): mgr = ClientManager() session = ClientSession(dest_hash=b"\x01" * 32, on_message=lambda p: None) mgr.register_session(session) assert mgr.is_local(b"\x01" * 32) is True mgr.unregister_session(b"\x01" * 32) assert mgr.is_local(b"\x01" * 32) is False def test_delivery_status_callback(): statuses = [] session = ClientSession( dest_hash=b"\x01" * 32, on_message=lambda p: None, on_status=lambda mid, s: statuses.append((mid, s)), ) mgr = ClientManager() mgr.register_session(session) assert mgr.report_delivery_status(b"\x01" * 32, 42, 1) is True assert statuses == [(42, 1)] def test_session_count(): mgr = ClientManager() assert mgr.session_count == 0 mgr.register_session(ClientSession(dest_hash=b"\x01" * 32, on_message=lambda p: None)) assert mgr.session_count == 1