blob: 0f13c6e3d38bc82ce74d351813c1eccd2593bce6 [file] [log] [blame]
*** Settings ***
Documentation Test suite for Instance API verification
Suite Setup Read InputFile
Test Template Verify Instance API functionality
Library Collections
Library String
Library OperatingSystem
Library XML
Library RequestsLibrary
Library CORDRobot
Library ImportResource resources=CORDRobot
| Variables | ../Properties/RestApiProperties.py
*** Variables ***
${USER} admin
${PASSWORD} admin
${PATHFILE} ${CURDIR}/data/Instance.json
| ${IP} | ${SERVER_IP}
| ${PORT} | ${SERVER_PORT}
*** Test Cases *** TYPE LISTINDEX
Test Add Instance-1
CREATE 0
Test Get Instance-1
RETRIEVE 0
Test Delete Instance-1
DELETE 0
Test Add Instance-2
CREATE 1
Test Get Instance-2
RETRIEVE 1
Test Delete Instance-2
DELETE 1
*** Keywords ***
Read InputFile
${instanceList} = CORDRobot.jsonToList ${PATHFILE} InstanceInfo
Set Suite Variable ${iList} ${instanceList}
${image}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/images/1/
Set Suite Variable ${image} ${image}
${slice}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/slices/1/
Set Suite Variable ${slice} ${slice}
${deployment}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/deployments/1/
Set Suite Variable ${deployment} ${deployment}
${node}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/nodes/1/
Set Suite Variable ${node} ${node}
${creator}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/users/1/
Set Suite Variable ${creator} ${creator}
Verify Instance API functionality
[Arguments] ${type} ${listIndex}
Run Keyword If "${type}" == "CREATE" Test Post Instances ${listIndex}
Run Keyword If "${type}" == "RETRIEVE" Test Get Instances ${listIndex}
Run Keyword If "${type}" == "DELETE" Test Delete Instances ${listIndex}
Test Post Instances
[Arguments] ${listIndex}
${instanceList} = Get Variable Value ${iList}
${instanceDict}= CORDRobot.listToDict ${instanceList} ${listIndex}
${image}= Get Variable Value ${image}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} image ${image}
${slice}= Get Variable Value ${slice}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} slice ${slice}
${deployment}= Get Variable Value ${deployment}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} deployment ${deployment}
${node}= Get Variable Value ${node}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} node ${node}
${creator}= Get Variable Value ${creator}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} creator ${creator}
${api_result}= CORDRobot.ApiPost CORE_INSTANCES ${instanceDict}
Should Be True ${api_result}
Test Get Instances
[Arguments] ${listIndex}
${json_result}= CORDRobot.ApiGet CORE_INSTANCES
Log ${json_result}
${instanceList}= Get Variable Value ${iList}
${instanceDict}= CORDRobot.listToDict ${instanceList} ${listIndex}
${image}= Get Variable Value ${image}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} image ${image}
${slice}= Get Variable Value ${slice}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} slice ${slice}
${deployment}= Get Variable Value ${deployment}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} deployment ${deployment}
${node}= Get Variable Value ${node}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} node ${node}
${creator}= Get Variable Value ${creator}
${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} creator ${creator}
${instanceName}= CORDRobot.getFieldValueFromDict ${instanceDict} name
${getJsonDict}= CORDRobot.getDictFromListOfDict ${json_result} name ${instanceName}
${test_result}= CORDRobot.compare_dict ${instanceDict} ${getJsonDict}
Should Be True ${json_result}
Test Delete Instances
[Arguments] ${listIndex}
${json_getresult}= CORDRobot.ApiGet CORE_INSTANCES
${instanceList}= Get Variable Value ${iList}
${instanceDict}= CORDRobot.listToDict ${iList} ${listIndex}
${instanceName}= CORDRobot.getFieldValueFromDict ${instanceDict} name
Log ${instanceName}
${getInstanceDict}= CORDRobot.getDictFromListofDict ${json_getresult} name ${instanceName}
Log ${getInstanceDict}
${instanceID}= CORDRobot.getFieldValueFromDict ${getInstanceDict} id
Log ${instanceID}
${test_result}= CORDRobot.ApiDelete CORE_INSTANCES ${instanceID}
Should be True ${test_result}