*** Settings ***
Library           Process
Library           OperatingSystem
Library           String
Suite Setup       Set Environment Variables
Suite Teardown    Clean Up Test Database
Test Tags         resource_cli

*** Variables ***
${PYTHON}         python
${DB_URL}         sqlite:///build/test_resource_cli.db

*** Keywords ***
Set Environment Variables
    Set Environment Variable    CLEVERAGENTS_DATABASE_URL    ${DB_URL}
    Set Environment Variable    CLEVERAGENTS_TESTING_USE_MOCK_AI    true
    ${script}=    Set Variable    from cleveragents.infrastructure.database.models import Base; from sqlalchemy import create_engine; e \= create_engine("${DB_URL}"); Base.metadata.create_all(e)
    ${result}=    Run Process    ${PYTHON}    -c    ${script}
    ...    env:PYTHONPATH=src    timeout=120s    on_timeout=kill
    Should Be Equal As Integers    ${result.rc}    0

Clean Up Test Database
    Remove File    build/test_resource_cli.db

*** Test Cases ***
Resource Type List Returns Output
    [Documentation]    Verify resource type list command runs without error
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    resource    type    list
    ...    env:PYTHONPATH=src    env:CLEVERAGENTS_DATABASE_URL=${DB_URL}    env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true
    ...    timeout=120s    on_timeout=kill    stderr=STDOUT
    Log    ${result.stdout}
    Should Be Equal As Integers    ${result.rc}    0

Resource Show Non Existent Returns Error
    [Documentation]    Verify resource show for non-existent resource fails gracefully
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    resource    show    nonexistent
    ...    env:PYTHONPATH=src    env:CLEVERAGENTS_DATABASE_URL=${DB_URL}    env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true
    ...    timeout=120s    on_timeout=kill    stderr=STDOUT
    Log    ${result.stdout}
    Should Not Be Equal As Integers    ${result.rc}    0
