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}