"""Unit-Tests für die Obligation-Taxonomie-Registry (decision_method_required)."""
from compliance.services.obligation_taxonomy import OBLIGATION_META, requires_llm


class TestRequiresLlm:
    def test_marked_obligations_require_llm(self):
        for ob in ("recipients_disclosed", "third_country_transfer_disclosed",
                   "safeguards_disclosed", "safeguards_accessible"):
            assert requires_llm(ob) is True

    def test_unmarked_obligation_does_not(self):
        assert requires_llm("art20_right_exists_core") is False
        assert requires_llm("objection_general_art21_1") is False

    def test_unknown_obligation_is_false(self):
        assert requires_llm("does_not_exist") is False

    def test_registry_values_are_llm(self):
        assert all(v.get("decision_method_required") == "LLM"
                   for v in OBLIGATION_META.values())
