[SEBA-134] new subscriber tests

Change-Id: I89e256c185261167dea41a2153f96b90a167ecd9
diff --git a/src/test/cord-api/Tests/Subscriber_StatusChecks.txt b/src/test/cord-api/Tests/Subscriber_StatusChecks.txt
new file mode 100644
index 0000000..0743414
--- /dev/null
+++ b/src/test/cord-api/Tests/Subscriber_StatusChecks.txt
@@ -0,0 +1,77 @@
+*** Settings ***
+Documentation     Test suite for checking the subscriber status after discovery
+Suite Setup       Read InputFile
+Test Template     Subscriber Status Test
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${PATHFILE}       ${CURDIR}/data/Subscriber_TopDown.json
+&{input_dict}    mac_address=test    ip_address=test2
+&{status}    status=test
+
+*** Test Cases ***    TYPE                         LISTINDEX
+Test Status Subscriber-1
+                      STATUS                       0
+Change Subscriber status
+                      STATUSCHANGE             0
+Push MACandIP Subscriber-1
+                      PUSH                     0
+Test Status Subscriber-2
+                      STATUS                       1
+Change Subscriber-2 status
+                      STATUSCHANGE             1
+Push MACandIP Subscriber-2
+                      PUSH                     1
+
+*** Keywords ***
+Read InputFile
+    ${SubscriberList}=    utils.jsonToList    ${PATHFILE}   SubscriberInfo 
+    Set Suite Variable    ${slist}    ${SubscriberList}
+    Set Global Variable    ${Subscriber_Id}    ${EMPTY}
+    Set Global Variable    ${status}    ${EMPTY}
+
+Subscriber Status Test
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "PUSH"    Push MAC and IP For Subscriber    ${listIndex}
+    Run Keyword If    "${type}" == "STATUS"    Subscriber Status Check    ${listIndex}
+    Run Keyword If    "${type}" == "STATUSCHANGE"    Subscriber Status Change   ${listIndex}
+
+Subscriber Status Check
+    [Arguments]    ${listIndex}
+    Set Global Variable    ${Subscriber_Id}    ${EMPTY}
+    Log    ${Subscriber_Id}
+    ${json_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    Log    ${json_result}
+    ${SubscriberList} =    Get Variable Value    ${slist}
+    ${SubscriberDict}=    utils.listToDict    ${SubscriberList}    ${listIndex}
+    Log    ${SubscriberDict}
+    ${onu_device}=    utils.getFieldValueFromDict    ${subscriberDict}   onu_device
+    ${json_result_list}=    Get From dictionary    ${json_result}    items
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    onu_device    ${onu_device}
+    ${status}=	Get From Dictionary    ${getJsonDict}    status
+    ${Subscriber_Id}=    Get From Dictionary    ${getJsonDict}   id
+    Set Global Variable    ${Subscriber_Id}
+    Should Be Equal    ${status}    awaiting_auth
+    #Set Global Variable    ${Subscriber_Id}
+
+Subscriber Status Change
+    [Arguments]    ${listIndex}
+    ${status}=    Create Dictionary    status=enabled
+    ${api_result_status}=    restApi.ApiChameleonPut    VOLT_SUBSCRIBER    ${status}    ${Subscriber_Id}
+    Should Be True    ${api_result_status}
+
+Push MAC and IP For Subscriber
+    [Arguments]    ${listIndex}
+    ${SubscriberList} =    Get Variable Value    ${slist}
+    ${SubscriberDict}=    utils.listToDict    ${SubscriberList}    ${listIndex}
+    ${mac_address}=    utils.getFieldValueFromDict    ${subscriberDict}   mac_address
+    ${ip_address}=    utils.getFieldValueFromDict    ${subscriberDict}   ip_address
+    ${input_dict}=    Create Dictionary    mac_address=${mac_address}    ip_address=${ip_address}
+    ${api_result_status}=    restApi.ApiChameleonPut    VOLT_SUBSCRIBER    ${input_dict}    ${Subscriber_Id}
+    Should Be True    ${api_result_status}