Update CM-Handle registration response
[cps.git] / csit / tests / cps-model-sync / cps-model-sync.robot
index 31931c1..7de1f3a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation
+ *  Copyright (C) 2021-2022 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
  */
 
 *** Settings ***
-Documentation         NCMP-DMI - Registration & Model Sync
+Documentation         NCMP
 
 Library               Collections
 Library               OperatingSystem
 Library               RequestsLibrary
 Library               BuiltIn
 
-Suite Setup           Create Session     DMI_URL    http://${DMI_HOST}:${DMI_PORT}
+Suite Setup           Create Session      CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
 
 *** Variables ***
 
-${auth}            Basic Y3BzdXNlcjpjcHNyMGNrcyE=
-${basePath}        /dmi
+${auth}                   Basic Y3BzdXNlcjpjcHNyMGNrcyE=
+${ncmpInventoryBasePath}  /ncmpInventory
+${ncmpBasePath}           /ncmp
+${dmiUrl}                 http://${DMI_HOST}:${DMI_PORT}
+${jsonDataCreate}         {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","createdCmHandles":[{"cmHandle":"PNFDemo","cmHandleProperties":{"Book1":"Sci-Fi Book"},"publicCmHandleProperties":{"Contact":"storeemail@bookstore.com"}}]}
+${jsonDataUpdate}         {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","updatedCmHandles":[{"cmHandle":"PNFDemo","cmHandleProperties":{"Book1":"Romance Book"},"publicCmHandleProperties":{"Contact":"newemailforstore@bookstore.com"}}]}
 
 *** Test Cases ***
-Register node & sync models
-    ${uri}=              Set Variable       ${basePath}/v1/inventory/cmHandles
+Register data node and sync modules.
+    ${uri}=              Set Variable       ${ncmpInventoryBasePath}/v1/ch
     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
-    ${jsonData}=         Get Binary File    ${DATADIR}${/}cmHandleRegistration.json
-    ${response}=         POST On Session    DMI_URL   ${uri}   headers=${headers}   data=${jsonData}
-    Should Be Equal As Strings              ${response.status_code}   201
+    ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonDataCreate}
+    Should Be Equal As Strings              ${response.status_code}   200
 
-Verify Sync
-    ${uri}=              Set Variable       ${basePath}/v1/ch/PNFDemo/modules
+Get CM Handle details and confirm it has been registered.
+    ${uri}=              Set Variable       ${ncmpBasePath}/v1/ch/PNFDemo
+    ${headers}=          Create Dictionary  Authorization=${auth}
+    ${response}=         GET On Session     CPS_URL   ${uri}   headers=${headers}
+    ${responseJson}=     Set Variable       ${response.json()}
+    ${schemaCount}=      Get length         ${responseJson}
+    Should Be Equal As Strings              ${response.status_code}   200
+    IF    "${responseJson['cmHandle']}" == "PNFDemo"
+           FOR   ${item}   IN  @{responseJson['publicCmHandleProperties']}
+                   Should Be Equal As Strings              "${item['Contact']}"  "storeemail@bookstore.com"
+           END
+    END
+
+Update data node and sync modules.
+    ${uri}=              Set Variable       ${ncmpInventoryBasePath}/v1/ch
     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
-    ${jsonData}=         Get Binary File    ${DATADIR}${/}postModuleRequestBody.json
-    ${response}=         POST On Session    DMI_URL   ${uri}   headers=${headers}   data=${jsonData}
+    ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonDataUpdate}
+    Should Be Equal As Strings              ${response.status_code}   200
+
+Get CM Handle details and confirm it has been updated.
+    ${uri}=              Set Variable       ${ncmpBasePath}/v1/ch/PNFDemo
+    ${headers}=          Create Dictionary  Authorization=${auth}
+    ${response}=         GET On Session     CPS_URL   ${uri}   headers=${headers}
+    ${responseJson}=     Set Variable       ${response.json()}
+    ${schemaCount}=      Get length         ${responseJson}
+    Should Be Equal As Strings              ${response.status_code}   200
+    IF    "${responseJson['cmHandle']}" == "PNFDemo"
+           FOR   ${item}   IN  @{responseJson['publicCmHandleProperties']}
+                   Should Be Equal As Strings              "${item['Contact']}"  "newemailforstore@bookstore.com"
+           END
+    END
+
+Get modules for registered data node
+    ${uri}=              Set Variable       ${ncmpBasePath}/v1/ch/PNFDemo/modules
+    ${headers}=          Create Dictionary  Authorization=${auth}
+    ${response}=         GET On Session     CPS_URL   ${uri}   headers=${headers}
     ${responseJson}=     Set Variable       ${response.json()}
     Should Be Equal As Strings              ${response.status_code}   200
-    FOR   ${item}   IN  @{responseJson['schemas']}
+    FOR   ${item}   IN  @{responseJson}
             IF   "${item['moduleName']}" == "stores"
                 Should Be Equal As Strings              "${item['revision']}"   "2020-09-15"
-                Should Be Equal As Strings              "${item['namespace']}"  "org:onap:ccsdk:sample"
             END
         END