diff --git a/plans/multicloud-azure/functionality1/setup.sh b/plans/multicloud-azure/functionality1/setup.sh
new file mode 100755
index 0000000..54941ad
--- /dev/null
+++ b/plans/multicloud-azure/functionality1/setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Amdocs
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+pushd ${SCRIPTS}
+
+# start multicloud-azure
+./run-instance.sh nexus3.onap.org:10001/onap/multicloud/azure:latest multicloud-azure
+SERVICE_IP=$(./get-instance-ip.sh multicloud-azure)
+SERVICE_PORT=9008
+popd
+
+if [[ $no_proxy && $no_proxy != *$SERVICE_IP* ]]; then
+	export no_proxy+=$no_proxy,$SERVICE_IP
+fi
+
+for i in {1..50}; do
+    curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break
+    echo sleep $i
+    sleep $i
+done
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} "
+ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} "
diff --git a/plans/multicloud-azure/functionality1/teardown.sh b/plans/multicloud-azure/functionality1/teardown.sh
new file mode 100755
index 0000000..5cb017a
--- /dev/null
+++ b/plans/multicloud-azure/functionality1/teardown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Amdocs
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+# This script is sourced by run-csit.sh after Robot test completion.
+kill-instance.sh multicloud-azure
diff --git a/plans/multicloud-azure/functionality1/testplan.txt b/plans/multicloud-azure/functionality1/testplan.txt
new file mode 100644
index 0000000..0bc3efa
--- /dev/null
+++ b/plans/multicloud-azure/functionality1/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+multicloud-azure/provision/sanity_test_multicloud.robot
diff --git a/tests/multicloud-azure/provision/sanity_test_multicloud.robot b/tests/multicloud-azure/provision/sanity_test_multicloud.robot
new file mode 100644
index 0000000..7cdd70f
--- /dev/null
+++ b/tests/multicloud-azure/provision/sanity_test_multicloud.robot
@@ -0,0 +1,22 @@
+*** settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Variables ***
+@{return_ok_list}=   200  201  202
+${queryswagger_ocata_url}    /api/multicloud-azure/v0/swagger.json
+
+
+*** Test Cases ***
+OcataSwaggerTest
+    [Documentation]    query swagger info rest test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${SERVICE_IP}:${SERVICE_PORT}    headers=${headers}
+    ${resp}=  Get Request    web_session    ${queryswagger_ocata_url}
+    ${response_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${response_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${swagger_version}=    Convert To String      ${response_json['swagger']}
+    Should Be Equal    ${swagger_version}    2.0
