SEBA-527 initial xos-core/testservicesync tests
Change-Id: I6ad7ca7f4c354e0fef912059013a5d9bb141833c
diff --git a/src/test/cord-api/Tests/xos-test-service/test-service.robot b/src/test/cord-api/Tests/xos-test-service/test-service.robot
new file mode 100644
index 0000000..013ead4
--- /dev/null
+++ b/src/test/cord-api/Tests/xos-test-service/test-service.robot
@@ -0,0 +1,75 @@
+# XOS Core Test
+#
+# This test will validate the xos-core's sync steps and model policies using the TestService
+#
+
+*** Settings ***
+Documentation Test migration of a Service in the core
+Library RequestsLibrary
+Library HttpLibrary.HTTP
+Library Collections
+Library String
+Library OperatingSystem
+Library DateTime
+Library ../../Framework/utils/utils.py
+Resource ../../Framework/utils/utils.robot
+Library ../../Framework/restApi.py
+Variables ../../Properties/RestApiProperties.py
+Suite Setup Setup
+Suite Teardown Teardown
+
+*** Variables ***
+${testservice_api} /xosapi/v1/testservice/testserviceservices
+${testservice_si} /xosapi/v1/testservice/testserviceserviceinstances
+${testservice_duplicate_si} /xosapi/v1/testservice/testserviceduplicateserviceinstances
+
+*** Test Cases ***
+Create Test Model with No Duplicate
+ [Documentation] Create a testservice service instance with no duplicate
+ [Tags] create
+ ${model_name}= Generate Random Value string
+ ${data}= Create Dictionary name=${model_name} create_duplicate=${false}
+ ${resp}= CORD Post ${testservice_si} ${data}
+ ${json_content}= To Json ${resp.content}
+ ${test_serviceinstance_id}= Get From Dictionary ${json_content} id
+ Set Suite Variable ${test_serviceinstance_id}
+ Set Suite Variable ${model_name}
+ Repeat Keyword 10s Validate Duplicate Model false
+
+Update Model with Duplicate
+ [Tags] update
+ CORD Put ${testservice_si} {'create_duplicate': ${true}} ${test_serviceinstance_id}
+ Wait Until Keyword Succeeds 60s 2s Validate Duplicate Model true
+
+Revert Model
+ [Tags] revert notready
+ CORD Put ${testservice_si} {'create_duplicate': ${false}} ${test_serviceinstance_id}
+ Wait Until Keyword Succeeds 60s 2s Validate Duplicate Model false
+
+*** Keywords ***
+Setup
+ ${auth} = Create List ${XOS_USER} ${XOS_PASSWD}
+ ${HEADERS} Create Dictionary Content-Type=application/json allow_modify_feedback=True
+ Create Session ${server_ip} http://${server_ip}:${server_port} auth=${AUTH} headers=${HEADERS}
+ # create test-service
+ ${data}= Create Dictionary name=xos-core-test-service-test
+ ${resp}= CORD Post ${testservice_api} ${data}
+
+Teardown
+ [Documentation] Delete all https sessions
+ Clean Up Objects ${testservice_si}
+ Clean Up Objects ${testservice_duplicate_si}
+ Clean Up Objects ${testservice_api}
+ Delete All Sessions
+
+Validate Duplicate Model
+ [Documentation] Checks if 'testserviceduplicateserviceinstances' was created or not
+ [Arguments] ${exists}=false
+ ${resp}= Wait Until Keyword Succeeds 60s 2s CORD Get ${testservice_duplicate_si}
+ ${jsondata}= To Json ${resp.content}
+ Run Keyword If '${exists}' == 'false' Should Be Empty ${jsondata['items']} ELSE Verify Exists ${jsondata}
+
+Verify Exists
+ [Arguments] ${data}
+ ${dict}= Get From List ${data['items']} 0
+ Should Be Equal As Strings ${dict['name']} ${model_name}