Add Node, Slice and Instance API tests
Change-Id: I3c3b9e8fbb7e485689bd8abac042b2264f6e51e3
diff --git a/src/test/cord-api/Tests/InstanceTest.txt b/src/test/cord-api/Tests/InstanceTest.txt
new file mode 100644
index 0000000..450ef43
--- /dev/null
+++ b/src/test/cord-api/Tests/InstanceTest.txt
@@ -0,0 +1,111 @@
+*** 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 ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+| 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} = utils.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}= utils.listToDict ${instanceList} ${listIndex}
+ ${image}= Get Variable Value ${image}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} image ${image}
+ ${slice}= Get Variable Value ${slice}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} slice ${slice}
+ ${deployment}= Get Variable Value ${deployment}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} deployment ${deployment}
+ ${node}= Get Variable Value ${node}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} node ${node}
+ ${creator}= Get Variable Value ${creator}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} creator ${creator}
+ ${api_result}= restApi.ApiPost CORE_INSTANCES ${instanceDict}
+ Should Be True ${api_result}
+
+Test Get Instances
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CORE_INSTANCES
+ Log ${json_result}
+ ${instanceList}= Get Variable Value ${iList}
+ ${instanceDict}= utils.listToDict ${instanceList} ${listIndex}
+ ${image}= Get Variable Value ${image}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} image ${image}
+ ${slice}= Get Variable Value ${slice}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} slice ${slice}
+ ${deployment}= Get Variable Value ${deployment}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} deployment ${deployment}
+ ${node}= Get Variable Value ${node}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} node ${node}
+ ${creator}= Get Variable Value ${creator}
+ ${instanceDict}= utils.setFieldValueInDict ${instanceDict} creator ${creator}
+ ${instanceName}= utils.getFieldValueFromDict ${instanceDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result} name ${instanceName}
+ ${test_result}= utils.compare_dict ${instanceDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Instances
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CORE_INSTANCES
+ ${instanceList}= Get Variable Value ${iList}
+ ${instanceDict}= utils.listToDict ${iList} ${listIndex}
+ ${instanceName}= utils.getFieldValueFromDict ${instanceDict} name
+ Log ${instanceName}
+ ${getInstanceDict}= utils.getDictFromListofDict ${json_getresult} name ${instanceName}
+ Log ${getInstanceDict}
+ ${instanceID}= utils.getFieldValueFromDict ${getInstanceDict} id
+ Log ${instanceID}
+ ${test_result}= restApi.ApiDelete CORE_INSTANCES ${instanceID}
+ Should be True ${test_result}