Commit 2800ac2b authored by Najam UI Hassan's avatar Najam UI Hassan Committed by Giacomo Bernini
Browse files

Added Test Cases for LoggingJobs.robot

parent 5878f59f
Loading
Loading
Loading
Loading
+190 −0
Original line number Original line Diff line number Diff line
*** Settings ***
Library           JSONSchemaLibrary    schemas/
Resource          environment/variables.txt
Resource          NFVMANOLogManagementKeywords.robot
Library           JSONLibrary
Library           OperatingSystem
Library           REST    ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT}    ssl_verify=false

*** Test Cases ***
POST Create a new logging job
    [Documentation]    Test ID: 8.3.4.1.1
    ...    Test title: POST Create a new logging job
    ...    Test objective: The objective is to create a new logging job
    ...    Pre-conditions: 
    ...    Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: logging job created
    POST Create a new logging job
    Check HTTP Response Status Code Is    201
    Check HTTP Response Header Contains    Location
    Check HTTP Response Body Json Schema Is    LoggingJob
    
GET information about logging jobs 
    [Documentation]    Test ID: 8.3.4.1.2
    ...    Test title: GET information logging jobs
    ...    Test objective: The objective is to retrieve information about logging jobs
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions:  
    GET Logging Jobs
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs
    
    
GET Logging jobs - invalid attribute-based filter
    [Documentation]    Test ID: 8.3.4.1.3
    ...    Test title: GET Logging jobs - invalid attribute-based filter
    ...    Test objective:  The objective is to test that the retrieval of logging jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response.
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Job with invalid filter
    Check HTTP Response Status Code Is    400
    Check HTTP Response Body Json Schema Is    ProblemDetails   
    
GET Logging jobs - invalid attribute selector
    [Documentation]    Test ID: 8.3.4.1.4
    ...    Test title: GET Logging jobs - invalid attribute selector
    ...    Test objective: The objective is to test that the retrieval of logging jobs fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response.
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Job with invalid selector
    Check HTTP Response Status Code Is    400
    Check HTTP Response Body Json Schema Is    ProblemDetails  
    
GET Logging jobs - Bad Request Response too Big
    [Documentation]    Test ID: 8.3.4.1.5
    ...    Test title: GET Logging jobs - Bad Request Response too Big
    ...    Test objective: The objective is to test that the retrieval of Logging job fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response.
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
     GET Logging Jobs
    Check HTTP Response Status Code Is    400
    Check HTTP Response Body Json Schema Is    ProblemDetails 

GET information about logging jobs with attribute-based filter
    [Documentation]    Test ID: 8.3.4.1.6
    ...    Test title: GET information about logging jobs with attribute-based filter
    ...    Test objective: The objective is to retrieve information about the logging jobs with attribute filters
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Job with filter
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs
    
GET information about logging jobs with "all_fields" attribute selector
    [Documentation]    Test ID: 8.3.4.1.7
    ...    Test title: GET information about logging jobs with "all_fields" attribute selector
    ...    Test objective: The objective is to retrieve information about logging jobs with "all_fields" attribute selector
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging jobs with all_fields attribute selector
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs
    
GET information about Logging Jobs with exclude_default attribute selector
    [Documentation]    Test ID: 8.3.4.1.8
    ...    Test title: GET information about Logging Jobs with "exclude_default" attribute selector
    ...    Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Jobs with exclude_default attribute selector
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs

    
GET information about Logging Jobs with fields attribute selector
    [Documentation]    Test ID: 8.3.4.1.9
    ...    Test title: GET information about Logging Jobs with fields attribute selector
    ...    Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Jobs with fields attribute selector
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs
     
GET information about Logging Jobs with "exclude_fields" attribute selector
    [Documentation]    Test ID: 8.3.4.1.10
    ...    Test title: GET information about Logging Jobs with "exclude_fields" attribute selector
    ...    Test objective: The objective is to retrieve information about the Logging Jobs with "exclude_fields" attribute selector
    ...    Pre-conditions: At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: none
    GET Logging Jobs with exclude_fields attribute selector
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    LoggingJobs
    
GET information about Logging Jobs with Paged Response
    [Documentation]    Test ID: 8.3.4.1.11
    ...    Test title: GET information about Logging Jobs with Paged Response
    ...    Test objective: The objective is to query information about Logging Jobs to get Paged Response.
    ...    Pre-conditions:  At least one logging job is created.
    ...    Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: 
    GET Logging Jobs
    Check HTTP Response Status Code Is    200
    Check LINK in Header
    
PUT Logging Jobs - Method not implemented
    [Documentation]    Test ID: 8.3.4.1.12
    ...    Test title: PUT Logging Jobs - Method not implemented
    ...    Test objective: The objective is to test that the method is not implemented
    ...    Pre-conditions: 
    ...    Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: none
    PUT Logging Jobs
    Check HTTP Response Status Code Is    405

PATCH Logging Jobs - Method not implemented
    [Documentation]    Test ID: 8.3.4.1.13
    ...    Test title: PATCH Logging Jobs - Method not implemented
    ...    Test objective: The objective is to test that the method is not implemented
    ...    Pre-conditions: 
    ...    Reference: clause 8.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: none
    PATCH Logging Jobs
    Check HTTP Response Status Code Is    405

DELETE Logging Jobs - Method not implemented
    [Documentation]    Test ID: 8.3.4.1.14
    ...    Test title: DELETE Logging Jobs - Method not implemented
    ...    Test objective: The objective is to test that the method is not implemented
    ...    Pre-conditions: 
    ...    Reference: clause 8.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1
    ...    Config ID: Config_prod_NFV-MANO
    ...    Applicability: 
    ...    Post-Conditions: Logging Job is not deleted.
    DELETE Logging Jobs
    Check HTTP Response Status Code Is    405
+133 −0
Original line number Original line Diff line number Diff line
*** Settings ***
Resource    environment/variables.txt
Library    REST    ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT}    ssl_verify=false
Library    MockServerLibrary 
Library    OperatingSystem
Library    BuiltIn
Library    JSONLibrary
Library    Collections
Library    JSONSchemaLibrary    schemas/
Library    Process


*** Keywords ***

Check HTTP Response Status Code Is
    [Arguments]    ${expected_status}
    ${status}=    Convert To Integer    ${expected_status}    
    Should Be Equal    ${response['status']}    ${status} 
    Log    Status code validated

Check HTTP Response Header Contains
    [Arguments]    ${CONTENT_TYPE}
    Should Contain    ${response['headers']}    ${CONTENT_TYPE}
    Log    Header is present
    
Check HTTP Response Body Json Schema Is
    [Arguments]    ${input}
    Should Contain    ${response['headers']['Content-Type']}    application/json
    ${schema} =    Catenate    SEPARATOR=    ${input}    .schema.json
    Validate Json    ${schema}    ${response['body']}
    Log    Json Schema Validation OK

POST Create a new logging job	
     Log    Create a logging job
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    jsons/createLoggingJobRequest.json
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs    ${body}
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}
	
GET Logging Jobs
    Log    Query to GET information about logging jobs.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Execute Query and validate response
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}
	
GET Logging Job with invalid filter
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Execute Query and validate response
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?attribute_not_exist=some_value
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}	
	
GET Logging Job with invalid selector
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Execute Query and validate response
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?fields=wrong_field
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}	
	
GET Logging Job with filter
	Log    Query  information about logging jobs with filters.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Log    Execute Query and validate response
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?${alarm_filter}=${filter_value} 
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}
	
GET Logging jobs with all_fields attribute selector
	Log    Queries information about logging jobs, using all_fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_default
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    
GET Logging Jobs with exclude_default attribute selector
    Log    Queries information about logging jobs, using exclude_default
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_default
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    
GET Logging Jobs with fields attribute selector
    Log    Queries information about Logging Jobs, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?fields=${fields}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    
GET Logging Jobs with exclude_fields attribute selector
    Log    Query VNF The GET method queries information about multiple alarms, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_fields=${fields}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    
Check LINK in Header
    ${linkURL}=    Get Value From Json    ${response['headers']}    $..Link
    Should Not Be Empty    ${linkURL}

PUT Logging Jobs
    log    Trying to perform a PUT. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}
PATCH Logging Jobs
    log    Trying to perform a PATCH. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}
DELETE Logging Jobs
    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}/${apiMajorVersion}/log_jobs
    ${outputResponse}=    Output    response
	Set Global Variable    @{response}    ${outputResponse}		
 No newline at end of file
+39 −0
Original line number Original line Diff line number Diff line
*** Variables ***
${NFVMANOHOST}      localhost   
${NFVMANO_PORT}      8080  
${NFVMANO_SCHEMA}    https


${AUTHORIZATION}    Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${NEG_AUTHORIZATION}    Bearer negativetoken

${CONTENT_TYPE}    application/json
${CONTENT_TYPE_JSON}    application/json
${ACCEPT_JSON}    application/json
${ACCEPT}         application/json
${AUTH_USAGE}     1
${FIELD_USAGE}    1
${NFVMANO_CHECKS_NOTIF_ENDPOINT}    1        ## If true, during subscription, the FUT performs a get to the notification endpoint

${NFVMANO_ALLOWS_DUPLICATE_SUBS}    1

${apiRoot}        /
${apiMajorVersion}     v1
${apiName}        nfvmanologm

${response}    {}

${callback_port}    9091
${callback_uri}    http://172.22.1.7:${callback_port}
${callback_endpoint}    /nfvmanologm/subscriptions
${callback_endpoint_error}    /subs_404
${sleep_interval}    20s

${total_polling_time}   2 min
${polling_interval}     10 sec

${MOCK_SERVER_JAR}    ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar

${alarm_filter}       id
${filter_value}     50daca910b000d4f1a2b675d604257e42
${fields}
 No newline at end of file
+6 −0
Original line number Original line Diff line number Diff line
{
  "objectInstanceIds":[],
  "jobCriteria":{
  		"loggingType":"MESSAGES"
  }
}
 No newline at end of file
+353 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading