Commit 5b71d37c authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

upd documentation

parent f5bfed6c
Loading
Loading
Loading
Loading
+90 −63
Original line number Original line Diff line number Diff line
@@ -9,7 +9,8 @@ Library DependencyLibrary


*** Variables ***
*** Variables ***
${Etag}=    an etag
${Etag}=    an etag
${Etag_modified}=    a modified etag
${Etag_modified}=    12345
${response}=    httpresponse


*** Test Cases ***
*** Test Cases ***
POST Configuration - Method not implemented
POST Configuration - Method not implemented
@@ -21,29 +22,19 @@ POST Configuration - Method not implemented
    Integer    response status    405
    Integer    response status    405


Get information about a configuration
Get information about a configuration
    [Documentation]    Test ID: 9.4.2.1
    [Documentation]    Test ID: 9.4.2.2
    ...    Test title: Get information about a configuration
    ...    Test title: Get information about a configuration
    ...    Test objective: The objective is to read configuration information about a VNF instance and/or its VNFC instances
    ...    Test objective: The objective is to test the retrieval of an existing VNF instance configuration
    ...    Pre-conditions: 
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID: 9.4.2.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: 
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions:   
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Log    Query VNF The GET method queries information about a configuration.
    Get VNF configuration
    Set Headers  {"Accept":"${ACCEPT}"}  
    Check HTTP Response Status Code Is    200
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Check HTTP Response Header Contains    Etag
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Check HTTP Response Body Json Schema Is   vnfConfiguration
    Log    Execute Query and validate response
    Check Postcondition VNF Configuration Untouched
    Get    ${apiRoot}/${apiName}/${apiVersion}/configuration
    ${Etag}=    Output    response headers Etag
    Log    Validate Status code
    Integer    response status    200
    ${contentType}=    Output    response headers Content-Type
    Should Contain    ${contentType}    ${CONTENT_TYPE}
    ${result}=    Output    response body
    ${json}=    evaluate    json.loads('''${result}''')    json
    Validate Json    vnfConfiguration.schema.json    ${json}
    Log    Validation OK


PUT Config - Method not implemented
PUT Config - Method not implemented
    log    Trying to perform a PUT. This method should not be implemented
    log    Trying to perform a PUT. This method should not be implemented
@@ -53,40 +44,61 @@ PUT Config - Method not implemented
    Log    Validate Status code
    Log    Validate Status code
    Integer    response status    405
    Integer    response status    405


PATCH Config
Set new VNF Configuration
    [Documentation]    Test ID: 9.4.2.2
    [Documentation]    Test ID: 9.4.2.1
    ...    Test title: Set or modify a configuration resource
    ...    Test title: Set a new VNF Configuration
    ...    Test objective: The objective is to set or modify a configuration resource
    ...    Test objective: The objective is to test the creation of a new VNF configuration
    ...    Pre-conditions: A VNF instance and its VNFC instances exist
    ...    Pre-conditions: A VNF instance is up and running
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions: The VNF configuration is set
    Send VNF configuration
    Check HTTP Response Status Code Is    200
    Check HTTP Response Header Contains    Etag
    Check HTTP Response Body Json Schema Is   vnfConfiModifications
    Check Postcondition VNF Is Configured

Set new VNF Configuration - HTTP Etag precondition failed
    [Documentation]    Test ID: 9.4.2.3
    ...    Test title: Set a new VNF Configuration - HTTP Etag precondition failed
    ...    Test objective: The objective is to test the failure in setting a duplication of VNF configuration identified by an already used HTTP Etag identifier.
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID: 9.4.2.1) with a given HTTP Etag identifier.
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: 
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions:  Configuration of the VNF instance and/or its VNFC instances has been set 
    ...    Post-Conditions:  The VNF configuration is not modified by the operation
    Send Duplicated VNF configuration
    Check HTTP Response Status Code Is    412
    Check HTTP Response Body Json Schema Is   ProblemDetails
    Check Postcondition VNF Configuration Untouched

DELETE Config - Method not implemented
    log    Trying to perform a DELETE. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Delete    ${apiRoot}/${apiName}/${apiVersion}/configuration
    Log    Validate Status code
    Integer    response status    405
    
*** Keywords ***    
Get VNF configuration
    Log    Query VNF The GET method queries information about a configuration.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Execute Query and validate response
    ${response}=    Get    ${apiRoot}/${apiName}/${apiVersion}/configuration

Send VNF configuration
    log    Trying to perform a PATCH. This method modifies the configuration    
    log    Trying to perform a PATCH. This method modifies the configuration    
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"} 
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"} 
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    json/vnfConfigModifications.json
    ${body}=    Get File    json/vnfConfigModifications.json
    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    Log    Validate Status code
    ${Etag_modified}=    Output    response headers Etag
    Integer    response status    200
    ${contentType}=    Output    response headers Content-Type
    Should Contain    ${contentType}    ${CONTENT_TYPE}
    ${result}=    Output    response body
    ${json}=    evaluate    json.loads('''${result}''')    json
    Validate Json    vnfConfigModifications.schema.json    ${json}
    Log    Validation OK


PATCH Config - Precondition failed
Send Duplicated VNF configuration
    [Documentation]    Test ID: 9.4.2.2-1
    ...    Test title: Set or modify a configuration resource  - Precondition failed
    ...    Test objective: The objective is to set or modify a configuration resource, but a precondition given in an HTTP request header is not fulfilled
    ...    Pre-conditions: A VNF instance and its VNFC instances exist, ETag modified in the meanwhile
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: 
    ...    Post-Conditions:  
    Depends On Test    PATCH Alarm    # If the previous test scceeded, it means that Etag has been modified
    Depends On Test    PATCH Alarm    # If the previous test scceeded, it means that Etag has been modified
    log    Trying to perform a PATCH. This method modifies an individual alarm resource  
    log    Trying to perform a PATCH. This method modifies an individual alarm resource  
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Accept":"${ACCEPT}"} 
@@ -94,18 +106,33 @@ PATCH Config - Precondition failed
    Set Headers    {"If-Match": "${Etag}"}
    Set Headers    {"If-Match": "${Etag}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    json/vnfConfigModifications.json
    ${body}=    Get File    json/vnfConfigModifications.json
    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    Log    Validate Status code
    Integer    response status    412
    ${problemDetails}=    Output    response body
    ${json}=    evaluate    json.loads('''${problemDetails}''')    json
    Validate Json    ProblemDetails.schema.json    ${json}
    Log    Validation OK


DELETE Config - Method not implemented
Check HTTP Response Status Code Is
    log    Trying to perform a DELETE. This method should not be implemented
    [Arguments]    ${expected_status}    
    Set Headers  {"Accept":"${ACCEPT}"}  
    Should Be Equal    ${response.status_code}    ${expected_status}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Status code validated
    Delete    ${apiRoot}/${apiName}/${apiVersion}/configuration

    Log    Validate Status code
Check HTTP Response Header Contains
    Integer    response status    405   
    [Arguments]    ${CONTENT_TYPE}
 No newline at end of file
    Should Contain    ${response.headers}    ${CONTENT_TYPE}
    Log    Header is present
    
Check HTTP Response Body Json Schema Is
    [Arguments]    ${schema}
    ${contentType}=    Get Value From Json    ${response.headers}    $..Content-Type
    Should Be Equal    ${contentType}    ${CONTENT_TYPE}
    ${json}=    evaluate    json.loads('''${response.body}''')    json
    Validate Json    ${schema}    ${json}
    Log    Json Schema Validation OK
    
Check Postcondition VNF Configuration Untouched
    Log    Check Postcondition for GET
    #todo
    
Check Postcondition VNF Is Configured
    Log    Check Postcondition for PATCH
    Get VNF configuration
    ${output}=    evaluate    json.loads('''${response.body}''')    json
    ${input}=    Get File    json/vnfConfigModifications.json
    Should Be Equal  ${output}    ${input}   
 No newline at end of file