Subscriber API Framework and Robot testcase files
Change-Id: Ie46904ce417ee43d1fc4b2a7c188bba74e0ef030
diff --git a/src/test/cord-api/Tests/SubscriberTest.txt b/src/test/cord-api/Tests/SubscriberTest.txt
new file mode 100644
index 0000000..ea06113
--- /dev/null
+++ b/src/test/cord-api/Tests/SubscriberTest.txt
@@ -0,0 +1,106 @@
+*** Settings ***
+Documentation Test suite for Subscriber verification
+Suite Setup Read InputFile
+Test Template Verify Subscriber 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/Subscriber.json
+${PATHFILE2} ${CURDIR}/data/putSubscriber.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Subscriber-1 CREATE 0
+
+Test Get_Subscriber-1
+ RETRIEVE 0
+
+Test Edit Subscriber-1
+ PUT 0
+
+Test Delete Subscriber Data-1
+ DELETE 0
+
+Test Subscriber-2 CREATE 1
+
+Test Get_Subscriber-2
+ RETRIEVE 1
+
+Test Edit Subscriber Data-2
+ PUT 1
+
+Test Delete Subscriber-2
+ DELETE 1
+
+Test Subscriber-3 CREATE 2
+
+Test Get_Subcriber-3
+ RETRIEVE 2
+
+Test Edit Subscriber-3
+ PUT 2
+
+Test Delete Subscriber-3
+ DELETE 2
+
+*** Keywords ***
+Read InputFile
+ ${subscriberList} = utils.jsonToList ${PATHFILE} SubscriberInfo
+ Set Suite Variable ${slist} ${subscriberList}
+ ${putSubscriberList}= utils.jsonToList ${PATHFILE2} SubscriberInfo
+ Set Suite Variable ${putList} ${putSubscriberList}
+
+Verify Subscriber functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "PUT" Test Edit Subscriber API ${listIndex}
+
+Test Post Subscriber API
+ [Arguments] ${listIndex}
+ ${subscriberList} = Get Variable Value ${slist}
+ ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
+ ${api_result}= restApi.ApiPost TENANT_SUBSCRIBER ${subscriberDict}
+ Should Be True ${api_result}
+
+Test Get Subscriber API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet TENANT_SUBSCRIBER
+ Log ${json_result}
+ ${subscriberList}= Get Variable Value ${slist}
+ ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
+ ${AccountNum}= restApi.getAccountNum ${subscriberDict}
+ ${getJsonDict}= restApi.getJsonDictOfAcctNum ${json_result} ${AccountNum}
+ ${test_result}= utils.compare_dict ${subscriberDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Edit Subscriber API
+ [Arguments] ${listIndex}
+ ${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}
+ ${api_result}= restApi.ApiPut TENANT_SUBSCRIBER ${putSubscriberDict} ${subscriberID}
+ Should Be True ${api_result}
+ ${getResultAfterPut}= restApi.ApiGet TENANT_SUBSCRIBER ${subscriberID}
+ ${test_result}= utils.compare_dict ${putSubscriberDict} ${getResultAfterPut}
+ Should Be True ${test_result}
+
+Test Delete Subscriber API
+ [Arguments] ${listIndex}
+ ${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}
+ ${test_result}= restApi.ApiDelete TENANT_SUBSCRIBER ${subscriberId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/data/Subscriber.json b/src/test/cord-api/Tests/data/Subscriber.json
index db9685f..8605026 100644
--- a/src/test/cord-api/Tests/data/Subscriber.json
+++ b/src/test/cord-api/Tests/data/Subscriber.json
@@ -1,2 +1,44 @@
-# Test data
-
+{
+ "SubscriberInfo" : [
+ {
+ "humanReadableName": "cordSubscriber-2",
+ "id": 2,
+ "features": {
+ "cdn": true,
+ "uplink_speed": 1000000000,
+ "downlink_speed": 1000000000,
+ "uverse": true,
+ "status": "enabled"
+ },
+ "identity": {
+ "account_num": "20",
+ "name": "My House"
+ }
+ },
+ {
+ "humanReadableName": "cordSubscriber-3",
+ "id": 3,
+ "features": {
+ "cdn": false,
+ "uplink_speed": 500000000,
+ "downlink_speed": 500000000,
+ "uverse": false,
+ "status": "enabled"
+ },
+ "identity": {
+ "account_num": "21",
+ "name": "My House"
+ }
+ },
+ {
+ "features": {
+ "cdn": true,
+ "uplink_speed": 500000000
+ },
+ "identity": {
+ "account_num": "22",
+ "name": "My House"
+ }
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/putSubscriber.json b/src/test/cord-api/Tests/data/putSubscriber.json
new file mode 100644
index 0000000..d73e7a2
--- /dev/null
+++ b/src/test/cord-api/Tests/data/putSubscriber.json
@@ -0,0 +1,34 @@
+{
+ "SubscriberInfo" : [
+ {
+ "features": {
+ "uplink_speed": 2000000000,
+ "downlink_speed": 2000000000
+ },
+ "identity": {
+ "account_num": "20",
+ "name": "My House - edited"
+ }
+ },
+ {
+ "features": {
+ "cdn": true,
+ "downlink_speed": 100000000,
+ "status": "enabled"
+ },
+ "identity": {
+ "account_num": "21",
+ "name": "My House2 - Edited"
+ }
+ },
+ {
+ "features": {
+ "cdn": false
+ },
+ "identity": {
+ "account_num": "22",
+ "name": "My House3 - Edited"
+ }
+ }
+ ]
+}