Add CSIT Tests for Update Operation on Passthrough-running 2/3
Add robot integration test for update scenario in Passthrough-running
Modify existing write data test json body to include better examples
Issue-ID: CPS-768
Change-Id: Ie769a33a86ec1a8384585484c54598189fdd5124
Signed-off-by: DylanB95EST <dylan.byrne@est.tech>
diff --git a/csit/data/bookstoreAddEntry.json b/csit/data/bookstoreAddEntry.json
deleted file mode 100644
index 86e9a5b..0000000
--- a/csit/data/bookstoreAddEntry.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "stores:categories": [
- {
- "stores:code": "ISBN200123",
- "stores:name": "library",
- "stores:books": [
- {
- "stores:title": "A good book",
- "stores:lang": "English",
- "stores:authors": [
- "Joe & Rahul"
- ],
- "stores:pub_year": "2001",
- "stores:price": "1000"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/csit/data/bookstoreCreateExample.json b/csit/data/bookstoreCreateExample.json
new file mode 100644
index 0000000..ff8e202
--- /dev/null
+++ b/csit/data/bookstoreCreateExample.json
@@ -0,0 +1,34 @@
+{
+ "categories": [
+ {
+ "code": "01",
+ "name": "Sci-Fi",
+ "books": [
+ {
+ "title": "A Sci-Fi book",
+ "lang": "English",
+ "authors": [
+ "Joe & Rahul"
+ ],
+ "pub_year": "2001",
+ "price": "1000"
+ }
+ ]
+ },
+ {
+ "code": "02",
+ "name": "Horror",
+ "books": [
+ {
+ "title": "A Horror book",
+ "lang": "English",
+ "authors": [
+ "Joe & Rahul"
+ ],
+ "pub_year": "2003",
+ "price": "2000"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/csit/data/bookstoreUpdateExample.json b/csit/data/bookstoreUpdateExample.json
new file mode 100644
index 0000000..2614b59
--- /dev/null
+++ b/csit/data/bookstoreUpdateExample.json
@@ -0,0 +1,8 @@
+{
+ "categories": [
+ {
+ "code": "01",
+ "name": "Updated Sci-Fi Category Name"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/csit/tests/ncmp-passthrough/ncmp-passthrough.robot b/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
index c23fa08..77d7f41 100644
--- a/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
+++ b/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
@@ -45,21 +45,54 @@
Should Be True ${schemaCount} >0
Should Contain ${responseJson['ietf-netconf-monitoring:netconf-state']['schemas']['schema'][0]['location']} ${netconf}
-Write to bookstore using passthrough-running
+Create to bookstore using passthrough-running
${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
- ${jsonData}= Get Binary File ${DATADIR}${/}bookstoreAddEntry.json
+ ${jsonData}= Get Binary File ${DATADIR}${/}bookstoreCreateExample.json
${response}= POST On Session CPS_URL ${uri} headers=${headers} data=${jsonData}
Should Be Equal As Strings ${response.status_code} 201
-Verify write to bookstore using passthrough-running
+Verify create to bookstore using passthrough-running
${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${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['stores:bookstore']['categories']}
- IF "${item['code']}" == "ISBN200123"
- Should Be Equal As Strings "${item['books']}[0][title]" "A good book"
+ IF "${item['code']}" == "01"
+ Should Be Equal As Strings "${item['name']}" "Sci-Fi"
+ Should Be Equal As Strings "${item['books']}[0][title]" "A Sci-Fi book"
+ END
+ IF "${item['code']}" == "02"
+ Should Be Equal As Strings "${item['name']}" "Horror"
+ Should Be Equal As Strings "${item['books']}[0][title]" "A Horror book"
END
END
+
+Update Bookstore using passthrough-running for Category 01
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
+ ${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
+ ${jsonData}= Get Binary File ${DATADIR}${/}bookstoreUpdateExample.json
+ ${response}= PUT On Session CPS_URL ${uri} headers=${headers} data=${jsonData}
+ Should Be Equal As Strings ${response.status_code} 200
+
+Verify update to bookstore using passthrough-running updated category 01
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
+ ${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['stores:categories']}
+ IF "${item['code']}" == "01"
+ Should Be Equal As Strings "${item['name']}" "Updated Sci-Fi Category Name"
+ END
+ END
+
+Verify update to bookstore using passthrough-running did not remove category 02
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${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
+ ${schemaCount}= Get length ${responseJson['stores:bookstore']['categories']}
+ Should Be Equal As Numbers ${schemaCount} 2
\ No newline at end of file