*** Settings ***
Metadata    name  "Test vyhledávání v Alephu"
Library     inspector.Inspector
Library     OperatingSystem
Library     XML
Variables   inspector.py



*** Variables ***
${vladci_isbn_query} =                 ${aleph.ISBNQuery("80-85892-15-4")}
${unix_isbn_validation_request} =      ${aleph.ISBNValidationRequest("80-251-0225-4")}
${vladci_title_query} =                ${aleph.TitleQuery("Vládci strachu")}



*** Keywords ***
Žádost má správný typ
    [Arguments]    ${element}          ${reference}
    Is type of     ${element}          ${reference}

Dotaz do Alephu
    [Arguments]    ${isbn_request}
    ${result} =    Aleph request       ${isbn_request}
    Log            ${result}
    [Return]       ${result}

ISBN je validní
    [Arguments]    ${isbn_response}
    Is true        ${isbn_response.is_valid}

ISBN není validní
    [Arguments]    ${isbn_response}
    Is false       ${isbn_response.is_valid}

Zkonvertuj dotaz
    [Arguments]            ${request}  ${type}
    ${result} =            Call        ${type}        ${request}
    Log                    ${result}
    Žádost má správný typ  ${result}   ${type}
    [Return]               ${result}



*** Test Cases ***
Dotaz na validaci ISBN
    [Documentation]         Tento dotaz nejde do Alephu, jedná se jen o test validnosti checksumu.
    Žádost má správný typ   ${unix_isbn_validation_request}  ${aleph.ISBNValidationRequest}
    ${result} =             Dotaz do Alephu  ${unix_isbn_validation_request}
    ISBN je validní         ${result}
    ${result} =             Dotaz do Alephu  ${aleph.ISBNValidationRequest("80-251-0225-x")}
    ISBN není validní       ${result}
    ${result} =             Dotaz do Alephu  ${aleph.ISBNValidationRequest("978-80-85979-64-0")}
    ISBN je validní       ${result}
    ${result} =             Dotaz do Alephu  ${aleph.ISBNValidationRequest("80-251-0225")}
    ISBN není validní       ${result}
    ${result} =             Dotaz do Alephu  ${aleph.ISBNValidationRequest("978-0-306-40615-7")}
    ISBN je validní         ${result}
    ${result} =             Dotaz do Alephu  ${aleph.ISBNValidationRequest("978-0-306-40115-7")}
    ISBN není validní       ${result}

ISBN dotaz na počet záznamů Vládců strachu
    Žádost má správný typ   ${vladci_isbn_query}      ${aleph.ISBNQuery}
    ${result} =             Zkonvertuj dotaz          ${vladci_isbn_query}  ${aleph.CountRequest}
    ${result} =             Dotaz do Alephu           ${result}
    Greater or equal than   ${result.num_of_records}  1

ISBN dotaz na záznam Vládců strachu
    Žádost má správný typ   ${vladci_isbn_query}      ${aleph.ISBNQuery}
    ${result} =             Zkonvertuj dotaz          ${vladci_isbn_query}  ${aleph.SearchRequest}
    ${result} =             Dotaz do Alephu           ${result}

    Log                     Zkontroluj počet záznamů
    ${len} =                Length                    ${result.records}
    Greater or equal than   ${len}                    1

    Log                     Zkontroluj, zda odpovídá autor
    Author partialy in any epub                       Kulhánek              ${result.records}

Jmenný dotaz na Vládce strachu
    Žádost má správný typ   ${vladci_title_query}      ${aleph.TitleQuery}
    ${result} =             Zkonvertuj dotaz          ${vladci_isbn_query}  ${aleph.SearchRequest}
    ${result} =             Dotaz do Alephu           ${result}

    Log                     Zkontroluj počet záznamů
    ${len} =                Length                    ${result.records}
    Greater or equal than   ${len}                    2

    Log                     Zkontroluj, zda odpovídá autor
    Author partialy in any epub                       Kulhánek              ${result.records}