"""
Unit Tests for Poe2VisualTool HWID Engine
Kiểm tra tính nhất quán (Deterministic), định dạng và độ tin cậy của mã phần cứng HWID.
"""

import re
import pytest
from src.commercial.hwid import get_machine_hwid, get_hardware_fingerprint_details


def test_hwid_format():
    """Kiểm tra HWID sinh ra tuân thủ định dạng chuẩn PVT-XXXX-XXXX-XXXX-XXXX."""
    hwid = get_machine_hwid()
    assert isinstance(hwid, str)
    assert hwid.startswith("PVT-")
    # Định dạng 4 cụm 4 ký tự hex: PVT-AAAA-BBBB-CCCC-DDDD
    pattern = re.compile(r"^PVT-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}$")
    assert pattern.match(hwid) is not None


def test_hwid_deterministic():
    """Kiểm tra gọi nhiều lần liên tiếp trên cùng 1 máy phải trả về cùng 1 mã duy nhất."""
    hwid_1 = get_machine_hwid()
    hwid_2 = get_machine_hwid()
    assert hwid_1 == hwid_2


def test_hwid_custom_salt():
    """Kiểm tra muối khác nhau phải sinh ra mã HWID khác nhau (bảo vệ chống copy)."""
    hwid_a = get_machine_hwid(custom_salt="SaltA")
    hwid_b = get_machine_hwid(custom_salt="SaltB")
    assert hwid_a != hwid_b


def test_hardware_details():
    """Kiểm tra trích xuất chi tiết phần cứng không bị rỗng."""
    details = get_hardware_fingerprint_details()
    assert isinstance(details, dict)
    assert "motherboard_uuid" in details
    assert "cpu_id" in details
    assert "disk_serial" in details
    assert len(details["motherboard_uuid"]) > 0
