From 8c9b4a24b4841154a2d08f506e2f7beca4f6fc31 Mon Sep 17 00:00:00 2001 From: DylanB95EST Date: Tue, 23 Nov 2021 15:16:15 +0000 Subject: [PATCH] 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 --- csit/data/bookstoreAddEntry.json | 19 ---------- csit/data/bookstoreCreateExample.json | 34 +++++++++++++++++ csit/data/bookstoreUpdateExample.json | 8 ++++ csit/tests/ncmp-passthrough/ncmp-passthrough.robot | 43 +++++++++++++++++++--- 4 files changed, 80 insertions(+), 24 deletions(-) delete mode 100644 csit/data/bookstoreAddEntry.json create mode 100644 csit/data/bookstoreCreateExample.json create mode 100644 csit/data/bookstoreUpdateExample.json diff --git a/csit/data/bookstoreAddEntry.json b/csit/data/bookstoreAddEntry.json deleted file mode 100644 index 86e9a5b3d..000000000 --- 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 000000000..ff8e202e3 --- /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 000000000..2614b5922 --- /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 c23fa085b..77d7f4103 100644 --- a/csit/tests/ncmp-passthrough/ncmp-passthrough.robot +++ b/csit/tests/ncmp-passthrough/ncmp-passthrough.robot @@ -45,21 +45,54 @@ Get for Passthough Operational (CF, RO) with fields 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 -- 2.16.6