*** Settings ***
Documentation    Integration tests for ACMS context CLI commands (context show and context clear)
Resource         ${CURDIR}/common.resource
Suite Setup      Setup Test Environment With Database Isolation
Suite Teardown   Cleanup Test Environment

*** Variables ***
${HELPER}      ${CURDIR}/helper_acms_context_cli.py

*** Test Cases ***
Context Show Command Returns Assembled Context
    [Documentation]    Verify context show command returns assembled context data
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-show    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-show-ok

Context Show Command Handles Empty View
    [Documentation]    Verify context show command handles view with no entries
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-show-empty    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-show-empty-ok

Context Clear Command Removes Entries With Yes Flag
    [Documentation]    Verify context clear command removes entries when --yes flag is used
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-clear-yes    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-clear-yes-ok

Context Clear Command Filters By Path
    [Documentation]    Verify context clear command filters entries by path pattern
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-clear-path    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-clear-path-ok

Context Clear Command Filters By Tag
    [Documentation]    Verify context clear command filters entries by tag
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-clear-tag    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-clear-tag-ok

Context Clear Command Filters By Tier
    [Documentation]    Verify context clear command filters entries by tier
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-clear-tier    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-clear-tier-ok

Context Clear Command Handles No Matching Entries
    [Documentation]    Verify context clear command handles case with no matching entries
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-clear-no-match    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-clear-no-match-ok

Context Show Validates Empty View Name
    [Documentation]    Verify context show command rejects empty view name
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    context-show-empty-view    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-context-show-empty-view-ok

Budget Utilization Formats Correctly
    [Documentation]    Verify budget utilization formatting helper
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    budget-format    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    acms-budget-format-ok
