"""Tests for GenericServerTask — TDD: tests before implementation.""" import pytest from i2p_apps.i2ptunnel.config import TunnelDefinition, TunnelType from i2p_apps.i2ptunnel.server_task import GenericServerTask def _make_server_def(**kw): defaults = dict( name="test-server", type=TunnelType.SERVER, target_host="127.0.0.1", target_port=8080, ) defaults.update(kw) return TunnelDefinition(**defaults) class MockServerSession: def __init__(self): self.destination = "SERV" * 129 async def accept(self): raise NotImplementedError("No mock accept") async def close(self): pass class TestGenericServerTask: def test_creation(self): config = _make_server_def() session = MockServerSession() task = GenericServerTask(config, session) assert task.tunnel_type == TunnelType.SERVER assert not task.is_open def test_config_target(self): config = _make_server_def(target_host="10.0.0.1", target_port=9090) session = MockServerSession() task = GenericServerTask(config, session) assert task._config.target_host == "10.0.0.1" assert task._config.target_port == 9090 def test_stats_initial(self): config = _make_server_def() session = MockServerSession() task = GenericServerTask(config, session) assert task.stats.total_connections == 0 assert task.stats.active_connections == 0 assert task.stats.total_bytes == 0