*** Settings ***
Documentation    Layer 4 - Predictive Error Prevention integration smoke tests
Library          OperatingSystem
Library          Process

*** Variables ***
${ERROR_PATTERN_MODEL}     ${CURDIR}/../src/cleveragents/domain/models/core/error_pattern.py
${ERROR_PATTERN_REPO}      ${CURDIR}/../src/cleveragents/infrastructure/database/error_pattern_repository.py
${ERROR_PATTERN_SERVICE}   ${CURDIR}/../src/cleveragents/application/services/error_pattern_service.py

*** Test Cases ***
Error Pattern Domain Model Exists
    [Documentation]    Verify the error pattern domain model module is present
    File Should Exist    ${ERROR_PATTERN_MODEL}
    ${content}=    Get File    ${ERROR_PATTERN_MODEL}
    Should Contain    ${content}    class ErrorPattern
    Should Contain    ${content}    class PreventiveGuidance
    Should Contain    ${content}    pattern_id
    Should Contain    ${content}    historical_failures
    Should Contain    ${content}    preventive_checks
    Should Contain    ${content}    frequency
    Should Contain    ${content}    keywords
    Should Contain    ${content}    format_for_context

Error Pattern Repository Module Exists
    [Documentation]    Verify the error pattern repository module is present
    File Should Exist    ${ERROR_PATTERN_REPO}
    ${content}=    Get File    ${ERROR_PATTERN_REPO}
    Should Contain    ${content}    class ErrorPatternRepository
    Should Contain    ${content}    def create(
    Should Contain    ${content}    def get(
    Should Contain    ${content}    def list_all(
    Should Contain    ${content}    def update(
    Should Contain    ${content}    def delete(
    Should Contain    ${content}    def match_context(
    Should Contain    ${content}    def count(
    Should Contain    ${content}    def statistics(

Error Pattern Service Provides Recording Matching And Statistics
    [Documentation]    Verify the error pattern service has all required methods
    File Should Exist    ${ERROR_PATTERN_SERVICE}
    ${content}=    Get File    ${ERROR_PATTERN_SERVICE}
    Should Contain    ${content}    class ErrorPatternService
    Should Contain    ${content}    def record_failure(
    Should Contain    ${content}    def match_patterns(
    Should Contain    ${content}    def get_statistics(
    Should Contain    ${content}    def list_patterns(
    Should Contain    ${content}    _extract_keywords
