Rearrange CSIT test order

- Waiting for Cmhandle to be ready before fetching the modules in the CSIT.
- Added condition to check size of the json array if it atleast has one
  item

Issue-ID: CPS-2313
Change-Id: Ib4f08069780c55a758ba976db5b96239c83ac990
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
diff --git a/csit/tests/cps-model-sync/cps-model-sync.robot b/csit/tests/cps-model-sync/cps-model-sync.robot
index bb881f6..514076f 100644
--- a/csit/tests/cps-model-sync/cps-model-sync.robot
+++ b/csit/tests/cps-model-sync/cps-model-sync.robot
@@ -25,6 +25,7 @@
 Library               OperatingSystem
 Library               RequestsLibrary
 Library               BuiltIn
+Library               String
 
 Suite Setup           Create Session      CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
 
@@ -88,13 +89,40 @@
     ${headers}=          Create Dictionary  Authorization=${auth}
     ${response}=         GET On Session     CPS_URL   ${uri}   headers=${headers}   expected_status=404
 
+Check if ietfYang-PNFDemo is READY
+    ${uri}=        Set Variable       ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo
+    ${headers}=    Create Dictionary  Authorization=${auth}
+    Wait Until Keyword Succeeds       20sec    200ms    Is CM Handle READY    ${uri}    ${headers}    ietfYang-PNFDemo
+
 Get modules for registered data node
     ${uri}=              Set Variable       ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/modules
     ${headers}=          Create Dictionary  Authorization=${auth}
     ${response}=         GET On Session     CPS_URL   ${uri}   headers=${headers}
     Should Be Equal As Strings              ${response.status_code}   200
+    ${number_of_items}=    Count Items In JSON Response    ${response}
+    Should Be True    ${number_of_items} > 0
     FOR   ${item}   IN  @{response.json()}
             IF   "${item['moduleName']}" == "stores"
                 Should Be Equal As Strings              "${item['revision']}"   "2020-09-15"
             END
-    END
\ No newline at end of file
+    END
+
+*** Keywords ***
+
+Is CM Handle READY
+    [Arguments]    ${uri}    ${headers}    ${cmHandle}
+    ${response}=    GET On Session    CPS_URL    ${uri}    headers=${headers}
+    Should Be Equal As Strings    ${response.status_code}    200
+    ${number_of_items}=    Count Items In JSON Response    ${response}
+    Should Be True    ${number_of_items} > 0
+    FOR  ${item}  IN  ${response.json()}
+            IF  "${item['cmHandle']}" == "${cmHandle}"
+                Should Be Equal As Strings    ${item['state']['cmHandleState']}    READY
+            END
+    END
+
+Count Items In JSON Response
+    [Arguments]    ${response}
+    ${json_data}=    Evaluate    json.loads('${response.content.decode("utf-8")}')   json
+    ${number_of_items}=    Get Length    ${json_data}
+    RETURN    ${number_of_items}
\ No newline at end of file