Added generic functions in utils libraries, new test for SynchronizerAPI

Change-Id: If9ba83fe25ffdf79476393874f7d3ebdf0fd28cd
diff --git a/src/test/cord-api/Tests/SubscriberTest.txt b/src/test/cord-api/Tests/SubscriberTest.txt
index ea06113..4df3faf 100644
--- a/src/test/cord-api/Tests/SubscriberTest.txt
+++ b/src/test/cord-api/Tests/SubscriberTest.txt
@@ -77,8 +77,8 @@
     Log    ${json_result}
     ${subscriberList}=    Get Variable Value    ${slist}
     ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
-    ${AccountNum}=    restApi.getAccountNum    ${subscriberDict}
-    ${getJsonDict}=    restApi.getJsonDictOfAcctNum    ${json_result}    ${AccountNum}
+    ${AccountNum}=    utils.getFieldValueFromDict    ${subscriberDict}    account_num
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result}    account_num    ${AccountNum}
     ${test_result}=    utils.compare_dict    ${subscriberDict}    ${getJsonDict}
     Should Be True    ${test_result}
 
@@ -87,8 +87,9 @@
     ${get_result}=    restApi.ApiGet    TENANT_SUBSCRIBER
     ${putSubscriberList}=    Get Variable Value    ${putList}
     ${putSubscriberDict}=    utils.listToDict    ${putSubscriberList}    ${listIndex}
-    ${AcctNum}=    restApi.getAccountNum    ${putSubscriberDict}
-    ${subscriberID}=    restApi.getSubscriberId    ${get_result}    ${AcctNum}
+    ${AcctNum}=    utils.getFieldValueFromDict    ${putSubscriberDict}    account_num
+    ${subscriberDict}=    utils.getDictFromListofDict    ${get_result}    account_num    ${AcctNum}
+    ${subscriberID}=    utils.getFieldValueFromDict    ${subscriberDict}    id
     ${api_result}=    restApi.ApiPut    TENANT_SUBSCRIBER    ${putSubscriberDict}    ${subscriberID}
     Should Be True    ${api_result}
     ${getResultAfterPut}=    restApi.ApiGet    TENANT_SUBSCRIBER    ${subscriberID}
@@ -100,7 +101,11 @@
     ${json_result}=    restApi.ApiGet    TENANT_SUBSCRIBER
     ${subscriberList}=    Get Variable Value    ${slist}
     ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
-    ${AcctNum}=    restApi.getAccountNum    ${subscriberDict}
-    ${subscriberId}=    restApi.getSubscriberId    ${json_result}    ${AcctNum}
+    ${AcctNum}=    utils.getFieldValueFromDict    ${subscriberDict}    account_num
+    Log    ${AcctNum}
+    ${subscriberDict}=    utils.getDictFromListofDict    ${json_result}    account_num    ${AcctNum}
+    Log    ${subscriberDict}
+    ${subscriberId}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    Log    ${subscriberId}
     ${test_result}=    restApi.ApiDelete    TENANT_SUBSCRIBER    ${subscriberId}
     Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/UtilsSynchronizer.txt b/src/test/cord-api/Tests/UtilsSynchronizer.txt
new file mode 100644
index 0000000..ab158ea
--- /dev/null
+++ b/src/test/cord-api/Tests/UtilsSynchronizer.txt
@@ -0,0 +1,84 @@
+*** Settings ***
+Documentation     Test suite for Utility Synchronizer API
+Suite Setup       Read InputFile
+Test Template     Verify Utility Synchronizer functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/UtilsSynchronizer.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add Synchronizer-1
+                      CREATE      0
+
+Test Get Synchronizer-1
+                      RETRIEVE    0
+
+Test Delete Synchronizer-1
+                      DELETE      0
+
+Test Add Synchronizer-2
+                      CREATE      1
+
+Test Get Synchronizer-2
+                      RETRIEVE    1
+
+Test Delete Synchronizer-2
+                      DELETE      1
+
+Test Add Synchronizer-3
+                      CREATE      2
+
+Test Get Synchronizer-3
+                      RETRIEVE    2
+
+Test Delete Synchronizer-3
+                      DELETE      2
+
+*** Keywords ***
+Read InputFile
+    ${syncList} =    utils.jsonToList    ${PATHFILE}    SynchronizerInfo
+    Set Suite Variable    ${sList}    ${syncList}
+
+Verify Utility Synchronizer functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Utils Synchronizer API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Utils Synchronizer API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Utils Synchronizer API    ${listIndex}
+
+Test Post Utils Synchronizer API
+    [Arguments]    ${listIndex}
+    ${syncList} =    Get Variable Value    ${sList}
+    ${syncDict}=    utils.listToDict    ${syncList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    UTILS_SYNCHRONIZER    ${syncDict}
+    Should Be True    ${api_result}
+
+Test Get Utils Synchronizer API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    UTILS_SYNCHRONIZER
+    Log    ${json_result}
+    ${syncList}=    Get Variable Value    ${sList}
+    ${syncDict}=    utils.listToDict    ${syncList}    ${listIndex}
+    ${syncName}=    utils.getFieldValueFromDict    ${syncDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result}    name    ${syncName}
+    ${test_result}=    utils.compare_dict    ${syncDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Utils Synchronizer API
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    UTILS_SYNCHRONIZER
+    ${syncList}=    Get Variable Value    ${sList}
+    ${syncDict}=    utils.listToDict    ${syncList}    ${listIndex}
+    ${syncName}=    utils.getFieldValueFromDict    ${syncDict}    name
+    ${getSyncDict}=    utils.getDictFromListofDict    ${json_getresult}    name    ${syncName}
+    ${syncID}=    utils.getFieldValueFromDict    ${getSyncDict}    id
+    ${test_result}=    restApi.ApiDelete    UTILS_SYNCHRONIZER    ${syncID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/data/UtilsSynchronizer.json b/src/test/cord-api/Tests/data/UtilsSynchronizer.json
new file mode 100644
index 0000000..b37cb90
--- /dev/null
+++ b/src/test/cord-api/Tests/data/UtilsSynchronizer.json
@@ -0,0 +1,13 @@
+{
+    "SynchronizerInfo" : [
+        {
+            "name": "vsg"
+        },
+        {
+            "name": "sample-service1"
+        },
+        {
+            "name": "sample-service2"
+        }
+  ]
+}