"""Tests for the TES3MP stub adapter."""

import pytest

from infrastructure.world.adapters.tes3mp import TES3MPWorldAdapter
from infrastructure.world.types import CommandInput


class TestTES3MPStub:
    """Acceptance criterion: stub imports cleanly and raises NotImplementedError."""

    def test_instantiates(self):
        adapter = TES3MPWorldAdapter(host="127.0.0.1", port=25565)
        assert adapter._host == "127.0.0.1"
        assert adapter._port == 25565

    def test_is_connected_default_false(self):
        adapter = TES3MPWorldAdapter()
        assert adapter.is_connected is False

    def test_connect_raises(self):
        adapter = TES3MPWorldAdapter()
        with pytest.raises(NotImplementedError, match="connect"):
            adapter.connect()

    def test_disconnect_raises(self):
        adapter = TES3MPWorldAdapter()
        with pytest.raises(NotImplementedError, match="disconnect"):
            adapter.disconnect()

    def test_observe_raises(self):
        adapter = TES3MPWorldAdapter()
        with pytest.raises(NotImplementedError, match="observe"):
            adapter.observe()

    def test_act_raises(self):
        adapter = TES3MPWorldAdapter()
        with pytest.raises(NotImplementedError, match="act"):
            adapter.act(CommandInput(action="move"))

    def test_speak_raises(self):
        adapter = TES3MPWorldAdapter()
        with pytest.raises(NotImplementedError, match="speak"):
            adapter.speak("Hello")
