--- /dev/null
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# 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 Tests for the Measurement Campaign XApp
+
+
+Resource /robot/resources/global_properties.robot
+Resource /robot/resources/mcxapp_properties.robot
+
+Resource /robot/resources/ric/ric_utils.robot
+
+Library Collections
+Library KubernetesEntity ${GLOBAL_XAPP_NAMESPACE}
+
+*** Variables ***
+${listenerContainerName} mc-xapp-listener
+${listenerStatRegex} ^[0-9]+\\s*\\[STAT\\]\\s*\\(mcl\\)
+${recentListenerDrops} .*last 60s.*drops\\s*=\\s*([1-9][0-9]*)
+${recentListenerErrors} .*last 60s.*errs\\s*=\\s*([1-9][0-9]*)
+${writerVesSuccesses} .*successful\\s+ves\\s+posts\\s*-\\s*([1-9][0-9]*)
+${writerVesErrors} .*failed\\s+ves\\s+posts\\s*-\\s*([1-9][0-9]*)
+
+*** Test Cases ***
+XApp Should Be Available
+ [Tags] etetests xapptests mcxapptests
+ ${deploymentName} = Get From Dictionary ${GLOBAL_RICPLT_XAPPS} mcxapp
+ Set Suite Variable ${deploymentName}
+ ${deploy} = Deployment ${deploymentName}
+ ${status} = Most Recent Availability Condition @{deploy.status.conditions}
+ Should Be Equal As Strings ${status} True ignore_case=True
+
+Listener Should Not Be Dropping Messages
+ [Tags] etetests xapptests mcxapptests
+ ${log} = Most Recent Container Logs ${deploymentName}
+ ... ${GLOBAL_MCXAPP_LISTENER_NAME}
+ ... ${listenerStatRegex}
+ Should Not Contain Match ${log} regexp=${recentListenerDrops}
+
+Listener Should Not Be Producing Errors
+ [Tags] etetests xapptests mcxapptests
+ ${log} = Most Recent Container Logs ${deploymentName}
+ ... ${GLOBAL_MCXAPP_LISTENER_NAME}
+ ... ${listenerStatRegex}
+ Should Not Contain Match ${log} regexp=${recentListenerErrors}
+
+Writer Should Be Successfully Sending Statistics
+ [Tags] etetests xapptests mcxapptests
+ Set Test Variable ${finalStatus} PASS
+ :FOR ${stat} IN @{GLOBAL_MCXAPP_WRITER_STATISTICS}
+ \ ${statRE} = Regexp Escape ${stat}
+ \ ${log} = Most Recent Container Logs ${deploymentName}
+ ... ${GLOBAL_MCXAPP_WRITER_NAME}
+ ... ^${statRE}:\\s+successful\\s+ves\\s+posts\\.*
+ \ ${status} ${u} = Run Keyword And Ignore Error
+ ... Should Contain Match ${log} regexp=${writerVesSuccesses}
+ \ ${finalStatus} = Set Variable If "${status}" == "FAIL"
+ ... FAIL
+ ... ${finalStatus}
+ \ Run Keyword If "${status}" == "FAIL"
+ ... Log No messages have been sent to VES for ${stat}
+ \ ${status} ${u} = Run Keyword And Ignore Error
+ ... Should Not Contain Match ${log} regexp=${writerVesErrors}
+ \ ${finalStatus} = Set Variable If "${status}" == "FAIL"
+ ... FAIL
+ ... ${finalStatus}
+ \ Run Keyword If "${status}" == "FAIL"
+ ... Log ${stat} is producing errors logging to VES
+ Run Keyword If "${finalStatus}" == "FAIL"
+ ... Fail One or more statistics is not being succesfully logged
+