From 342cfe5fc158448d206bfb597de4a5af8f359cff Mon Sep 17 00:00:00 2001
From: Elian Kraja <e.kraja@nextworks.it>
Date: Mon, 3 Dec 2018 10:33:40 +0100
Subject: [PATCH] Added creation tests examples with explicit get operation to
 check result

---
 .../VnfInstancesWithChecks.robot              | 63 ++++++++++++++++++
 .../PMJobsWithChecks.robot                    | 65 +++++++++++++++++++
 2 files changed, 128 insertions(+)
 create mode 100644 SOL003/VNFLifecycleManagement-API_egm/VnfInstancesWithChecks.robot
 create mode 100644 SOL003/VNFPerformanceManagement-API_nxw/PMJobsWithChecks.robot

diff --git a/SOL003/VNFLifecycleManagement-API_egm/VnfInstancesWithChecks.robot b/SOL003/VNFLifecycleManagement-API_egm/VnfInstancesWithChecks.robot
new file mode 100644
index 00000000..eed857b6
--- /dev/null
+++ b/SOL003/VNFLifecycleManagement-API_egm/VnfInstancesWithChecks.robot
@@ -0,0 +1,63 @@
+*** Setting ***
+Resource    variables.txt
+Library    OperatingSystem
+Library    BuiltIn
+Library    Collections
+Library    String
+Library    JSONSchemaLibrary    schemas/
+Library    JSONLibrary
+Library    REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
+
+
+
+*** Test Cases ***
+Create VNFInstantiation
+    ${post_response} =    Instantiate VNF
+    Validate Status Code    ${post_response.status_code}    201
+    Validate Header    ${post_response.headers}    Location
+    Validate Header    ${post_response.headers}    Content-Type
+    Validate JsonSchema    ${post_response.body}    vnfInstance.schema.json
+    ${get_response}=    Retrieve VNFinstance    ${post_response.body.id}
+    Should Not Be Empty    ${get_response}
+    Validate Status Code    ${get_response.status_code}    200
+    Should Be Equal    ${post_response.body.id}    ${get_response.body.id}    
+    Validate Header    ${get_response.headers}    Content-Type
+    Validate JsonSchema    ${get_response.body}    vnfInstance.schema.json
+    
+    
+*** Keywords ***
+Instantiate VNF
+    Log    Create VNF instance by POST to ${apiRoot}/${apiName}/${apiVersion}/vnf_instances
+    Set Headers  {"Accept":"${ACCEPT}"}  
+    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
+    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
+    ${body}=    Get File    json/createVnfRequest.json
+    Post    ${apiRoot}/${apiName}/${apiVersion}/vnf_instances    ${body}
+    [Return]    response 
+
+
+Validate Status Code
+    [Arguments]    ${curr_status}    ${exp_status}    
+    Should Be Equal    ${curr_status}    ${exp_status}
+    Log    Status code validated 
+
+
+Validate Header
+    [Arguments]    ${headers}    ${CONTENT_TYPE}
+    Should Contain    ${headers}    ${CONTENT_TYPE}
+    Log    Header is present
+
+
+Validate JsonSchema
+    [Arguments]    ${body}    ${schema}
+    ${json}=    evaluate    json.loads('''${body}''')    json
+    Validate Json    ${schema}    ${json}
+    Log    Validation OK
+    
+Retrieve VNFinstance
+    [Arguments]    ${vnfId}
+    Set Headers  {"Accept":"${ACCEPT}"}  
+    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
+    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfId}
+	[Return]	response
\ No newline at end of file
diff --git a/SOL003/VNFPerformanceManagement-API_nxw/PMJobsWithChecks.robot b/SOL003/VNFPerformanceManagement-API_nxw/PMJobsWithChecks.robot
new file mode 100644
index 00000000..66c28bd4
--- /dev/null
+++ b/SOL003/VNFPerformanceManagement-API_nxw/PMJobsWithChecks.robot
@@ -0,0 +1,65 @@
+*** Setting ***
+Resource    variables.txt
+Library    OperatingSystem
+Library    BuiltIn
+Library    Collections
+Library    String
+Library    JSONSchemaLibrary    schemas/
+Library    JSONLibrary
+Library    REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
+
+
+
+*** Test Cases ***
+Create PMJob
+    ${post_response} =    Create PMJob
+    Validate Status Code    ${post_response.status_code}    201
+    Validate Header    ${post_response.headers}    Content-Type
+    Validate JsonSchema    ${post_response.body}    PmJob.schema.json
+    ${get_response}=    Retrieve PMJob    ${post_response.body.id}
+    Should Not Be Empty    ${get_response}
+    Validate Status Code    ${get_response.status_code}    200
+    Should Be Equal    ${post_response.body.id}    ${get_response.body.id}    
+    Validate Header    ${get_response.headers}    Content-Type
+    Validate JsonSchema    ${get_response.body}    PmJob.schema.json
+    
+    
+*** Keywords ***
+Create PMJob
+    Log    Creating a new PM Job
+    Set Headers    {"Accept": "${ACCEPT_JSON}"}
+    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
+    Run Keyword If    ${VNFM_AUTH_USAGE} == 1    Set Headers    {"Authorization": "${VNFM_AUTHENTICATION}"}
+    ${body}=    Get File    jsons/CreatePmJobRequest.json
+    POST    ${apiRoot}/${apiName}/${apiVersion}/pm_jobs    ${body}
+    [Return]    response 
+
+
+Validate Status Code
+    [Arguments]    ${curr_status}    ${exp_status}    
+    Should Be Equal    ${curr_status}    ${exp_status}
+    Log    Status code validated 
+
+
+Validate Header
+    [Arguments]    ${headers}    ${CONTENT_TYPE}
+    Should Contain    ${headers}    ${CONTENT_TYPE}
+    Log    Header is present
+
+
+Validate JsonSchema
+    [Arguments]    ${body}    ${schema}
+    ${json}=    evaluate    json.loads('''${body}''')    json
+    Validate Json    ${schema}    ${json}
+    Log    Validation OK
+    
+Retrieve PMJob
+    [Arguments]    ${pmJobId}
+    Set Headers  {"Accept":"${ACCEPT}"}  
+    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
+    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${pmJobId}
+    [Return]    response
+    
+    
+    
-- 
GitLab