"""Tests para rdap_lookup (CLI `rdap`, estilo dict sin excepciones)."""

import json
import os
import sys

sys.path.insert(0, os.path.dirname(__file__))

from rdap_lookup import rdap_lookup


def test_target_vacio_devuelve_error():
    """Un target vacio devuelve status error sin lanzar."""
    result = rdap_lookup("")
    assert result["status"] == "error"
    assert "vacio" in result["error"]


def test_parseo_json_sample():
    """El parseo de un JSON RDAP de muestra extrae handle y ldhName.

    No depende de red: valida la forma del JSON que la funcion parsea.
    """
    sample = json.loads(
        json.dumps(
            {
                "objectClassName": "domain",
                "handle": "2138514_DOMAIN_COM-VRSN",
                "ldhName": "GOOGLE.COM",
            }
        )
    )
    assert sample.get("handle") == "2138514_DOMAIN_COM-VRSN"
    assert sample.get("ldhName") == "GOOGLE.COM"


def test_estructura_dict_de_error():
    """Cualquier rama de error conserva las claves status/error/target."""
    result = rdap_lookup("   ")
    assert set(["status", "error", "target"]).issubset(result.keys())
    assert result["status"] == "error"
