SEBA-904 created a Robot Framework test suite performing Redfish importer funtional tests
Change-Id: I77c7320a6bb277dc99a872a4cc0f3894ffab70fa
diff --git a/tests/functional/Redfish_Importer.robot b/tests/functional/Redfish_Importer.robot
new file mode 100644
index 0000000..51f3888
--- /dev/null
+++ b/tests/functional/Redfish_Importer.robot
@@ -0,0 +1,90 @@
+#Copyright 2017-present Open Networking Foundation
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+Documentation Provide the function to perform funtional tests for the Redfish device-management project
+Suite Setup Get IP AND PORT
+Library Process
+Library OperatingSystem
+Library BuiltIn
+Library String
+Library Collections
+Variables ../../variables/variables.robot
+
+*** Test Cases ***
+Clear Subscribed Events
+ [Documentation] This test case excercises the API, ClearCurrentEventList, which clears all Redfish evets
+ ... currently subscribed to.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/clear_all_subscribed_events.expected
+ ${OUTPUT}= Run Process tests/clear_all_subscribed_events.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+Configure Data Polling Interval
+ [Documentation] This test case excercises the API, SetFrequency, which configures the interval of data polling.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/configure_data_polling_interval.expected
+ ${OUTPUT}= Run Process tests/configure_data_polling_interval.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+List Subscribed Events
+ [Documentation] This test case excercises the API, GetCurrentEventList, which lists all Redfish evets currently
+ ... subscribed to.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/list_subscribed_events.expected
+ ${OUTPUT}= Run Process tests/list_subscribed_events.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+List Supported Events
+ [Documentation] This test case excercises the API, GetEventList, which lists all supported Redfish events.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/list_supported_events.expected
+ ${OUTPUT}= Run Process tests/list_supported_events.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+Subscribe Events
+ [Documentation] This test case excercises the API, SubscribeGivenEvents, which subscribes to the specified
+ ... events.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/subscribe_events.expected
+ ${OUTPUT}= Run Process tests/subscribe_events.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+Unsubscribe Events
+ [Documentation] This test case excercises the API, UnsubscribeGivenEvents, which unsubscribes to the specified
+ ... events.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g'
+ ... tests/unsubscribe_events.expected
+ ${OUTPUT}= Run Process tests/unsubscribe_events.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+Validate IP
+ [Documentation] This test case validates the format of IP, whcih is expected to be in the form of <ip>:<port>.
+ ${EXPECTED}= RUN sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/validate_ip.expected
+ ${OUTPUT}= Run Process tests/validate_ip.tc ${IP1} ${PORT1}
+ Should Be Equal ${EXPECTED} ${OUTPUT.stdout}
+
+*** Keywords ***
+Setup Suite
+ [Documentation] Set up the test suite
+ Common Test Suite Setup
+
+Get IP AND PORT
+ [Documentation] Obtain the ip and port of Redfish devices from ONF voltha-system-tests
+ @{ADDR_LIST} ${olt_ip}:${OLT_PORT}
+ Sort List ${ADDR_LIST}
+ ${I1}= Fetch From LEFT ${ADDR_LIST}[0] :
+ Set Suite Variable ${IP1} ${I1}
+ ${P1}= Fetch From Right ${ADDR_LIST}[0] :
+ Set Suite Variable ${PORT1} ${P1}