Skip to content
Snippets Groups Projects
Subscriptions.robot 5.66 KiB
Newer Older
  • Learn to ignore specific revisions
  • Resource    environment/variables.txt 
    
    Library    REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} 
    Library    OperatingSystem
    Library    JSONLibrary
    Library    JSONSchemaLibrary    schemas/
    
    *** Test Cases ***
    Create a new subscription
        Log    Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions
        Set Headers  {"Accept":"${ACCEPT}"}  
        Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    
        ${body}=    Get File    jsons/lccnSubscriptionRequest.json
    
        Post    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    ${body}
        Integer    response status    201
        Log    Status code validated
        ${headers}=    Output    response headers
        Should Contain    ${headers}    Location
        ${contentType}=    Output    response headers Content-Type
        Should Contain    ${contentType}    ${CONTENT_TYPE}
        ${result}=    Output    response body
    
    Elian Kraja's avatar
    Elian Kraja committed
        Validate Json    subscription.schema.json    ${result}
    
        Log    Validation OK
    
    Create a new Subscription - DUPLICATION
        Log    Trying to create a subscription with an already created content
    
    Elian Kraja's avatar
    Elian Kraja committed
        Pass Execution If    ${VNFM_DUPLICATION} == 0    VNFM is not permitting duplication. Skipping the test
    
        Set Headers    {"Accept": "${ACCEPT}"}
        Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    
        ${body}=    Get File    jsons/lccnSubscriptionRequest.json
    
        Post    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    ${body}
        Integer    response status    201
        Log    Status code validated
        ${contentType}=    Output    response headers Content-Type
        Should Contain    ${contentType}    ${CONTENT_TYPE}
        ${result}=    Output    response body
    
    Elian Kraja's avatar
    Elian Kraja committed
        Validate Json    subscription.schema.json    ${result}
    
        Log    Validation OK
    
    Create a new Subscription - NO-DUPLICATION
        Log    Trying to create a subscription with an already created content
    
    Elian Kraja's avatar
    Elian Kraja committed
        Pass Execution If    ${VNFM_DUPLICATION} == 1    VNFM permits duplication. Skipping the test
    
        Set Headers    {"Accept": "${ACCEPT}"}
        Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    
        ${body}=    Get File    jsons/lccnSubscriptionRequest.json
    
        Post    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    ${body}
        Integer    response status    303
        Log    Status code validated
        ${headers}=    Output    response headers
        Should Contain    ${headers}    Location
        Log    Validation OK
    
    GET Subscriptions
        Log    Get the list of active subscriptions
        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
        Get    ${apiRoot}/${apiName}/${apiVersion}/subscriptions
        Log    Validate Status code
        Integer    response status    200
        ${result}=    Output    response body
    
    Elian Kraja's avatar
    Elian Kraja committed
        Validate Json    subscriptions.schema.json    ${result}
    
        Log    Validation OK
    
    GET Subscription - Filter
        Log    Get the list of active subscriptions using a filter
        Set Headers    {"Accept": "${ACCEPT}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
        GET    ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter}
        Integer    response status    200
        Log    Received a 200 OK as expected
        ${result}=    Output    response body
    
    Elian Kraja's avatar
    Elian Kraja committed
        Validate Json    subscriptions.schema.json    ${result}
    
        Log    Validation OK
        
    GET subscriptions - Bad Request Invalid attribute-based filtering parameters
        Log    Get the list of active subscriptions using an invalid filter
        Set Headers    {"Accept": "${ACCEPT}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
        GET    ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter_invalid}
        Integer    response status    400
        ${contentType}=    Output    response headers Content-Type
        Should Contain    ${contentType}    ${CONTENT_TYPE}
        ${problemDetails}=    Output    response body
    
    Elian Kraja's avatar
    Elian Kraja committed
        Validate Json    ProblemDetails.schema.json    ${problemDetails}
    
        Log    Validation OK
        
    PUT subscriptions - Method not implemented
        log    Trying to perform a PUT. This method should not be implemented
        Set Headers  {"Accept":"${ACCEPT}"}  
        Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
        Put    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    
        Log    Validate Status code
        Integer    response status    405
    
    PATCH subscriptions - Method not implemented
        log    Trying to perform a PATCH. This method should not be implemented
        Set Headers  {"Accept":"${ACCEPT}"}  
        Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
        Patch    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    
        Log    Validate Status code
        Integer    response status    405
    
    DELETE subscriptions - Method not implemented
        log    Trying to perform a DELETE. This method should not be implemented
        Set Headers  {"Accept":"${ACCEPT}"}  
        Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
        Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
        Delete    ${apiRoot}/${apiName}/${apiVersion}/subscriptions
        Log    Validate Status code
        Integer    response status    405