"""Interface analyzer 테스트."""

from pathlib import Path

import pytest

from gar.reviewers.interface.analyzer import analyze_interface, build_interface_summary


def test_analyze_interface_basic():
    """기본적인 인터페이스 분석 테스트."""
    # 테스트용 간단한 Python 파일 생성
    test_file = Path(__file__).parent.parent.parent / "fixtures" / "sample_code_good.py"
    
    if not test_file.exists():
        pytest.skip("테스트 fixture 파일이 없습니다.")
    
    result = analyze_interface(test_file)
    
    assert "path" in result
    assert "functions" in result
    assert "classes" in result
    
    # 함수가 추출되었는지 확인
    functions = result["functions"]
    assert len(functions) > 0
    assert any(f["name"] == "get_user" for f in functions)


def test_build_interface_summary():
    """여러 파일에 대한 인터페이스 요약 테스트."""
    fixtures_dir = Path(__file__).parent.parent.parent / "fixtures"
    
    if not fixtures_dir.exists():
        pytest.skip("테스트 fixture 디렉터리가 없습니다.")
    
    py_files = list(fixtures_dir.glob("*.py"))
    if not py_files:
        pytest.skip("테스트 fixture 파일이 없습니다.")
    
    summary = build_interface_summary(py_files)
    
    assert "modules" in summary
    assert len(summary["modules"]) > 0
    
    # 각 모듈에 path가 있는지 확인
    for module in summary["modules"]:
        assert "path" in module
        assert "functions" in module or "classes" in module
