--- /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 Executes the End To End Test cases
+...
+Resource /robot/resources/appmgr_interface.robot
+Resource /robot/resources/negative_appmgr_tests.robot
+Resource /robot/resources/e2mgr_interface.robot
+Resource /robot//resources/dashboard_interface.robot
+Resource /robot/resources/global_properties.robot
+Resource /robot/resources/ric/ric_utils.robot
+Resource /robot/resources/e2term_interface.robot
+Resource /robot/resources/submgr_interface.robot
+#Resource /robot/testsuites/bouncer_dms_cli.robot
+#Resource /opt/ric/robot/bouncer_dms_cli.robot
+
+Library Process
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library KubernetesEntity ricplt
+Library String
+
+*** Variables ***
+${TEST_XAPPNAME} ${GLOBAL_TEST_XAPP}
+${TEST_NODE_B_NAME} ${GLOBAL_TEST_NODEB_NAME}
+${TEST_NODE_B_IP} ${GLOBAL_TEST_NODEB_ADDRESS}
+${TEST_NODE_B_PORT} ${GLOBAL_TEST_NODEB_PORT}
+${ricxapp_POD_NAME} ${GLOBAL_XAPP_NAMESPACE}-${GLOBAL_XAPP}
+${TEST_XAPP_ONBOARDER} ${GLOBAL_TEST_XAPP_ONBOARDER}
+
+*** Keywords ***
+Keyword Check subreq
+ [Arguments] ${linematch}
+ ${result_subreq} = Set variable 1
+ Set Global Variable ${result_subreq}
+ ${messages} = Split String ${linematch} ,
+ Log To Console ${messages}
+ ${ts} = Get From List ${messages} 0
+ Log To Console ${ts}
+ ${timestamp1} = Split String ${ts} :
+ ${timestampval1} = Get From List ${timestamp1} 1
+ Log To Console ${timestampval1}
+ Set Global Variable ${timestampval1}
+
+Keyword Check No subreq
+ ${checkNosubreq} = Set Variable 1
+
+
+Keyword Check subres
+ [Arguments] ${linematch}
+ ${result_subres} = Set variable 1
+ Set Global Variable ${result_subres}
+ ${messages1} = Split String ${linematch} ,
+ Log To Console ${messages1}
+ ${ts1} = Get From List ${messages1} 0
+ Log To Console ${ts1}
+ ${timestamp2} = Split String ${ts1} :
+ ${timestampval2} = Get From List ${timestamp2} 1
+ Log To Console ${timestampval2}
+ Set Global Variable ${timestampval2}
+
+Keyword Check No subres
+ ${checkNosubres} = Set Variable 1
+
+
+Keyword Check IndMessage
+ [Arguments] ${linematch}
+ ${result_Ind1} = Set Variable 1
+ Set Global Variable ${result_Ind1}
+ ${messages} = Split String ${linematch} :
+ Log To Console ${messages}
+ ${timestampval_ind1} = Get From List ${messages} 1
+ Log To Console ${timestampval_ind1}
+ Set Global Variable ${timestampval_ind1}
+ Append To List ${IndMessgList} ${timestampval_ind1}
+
+Keyword Check No IndMsg
+ ${checkNoindication} = Set Variable 1
+
+Keyword Check ControlMsg
+ [Arguments] ${linematch}
+ ${result_ctrl1} = Set Variable 1
+ Set Global Variable ${result_ctrl1}
+ ${messages1} = Split String ${linematch} :
+ Log To Console ${messages1}
+ ${timestampval_ctrl1} = Get From List ${messages1} 1
+ Log To Console ${timestampval_ctrl1}
+ Set Global Variable ${timestampval_ctrl1}
+ Append To List ${ContMessgList} ${timestampval_ctrl1}
+
+Keyword Check No CtrlMsg
+ ${checkNocontrol} = Set Variable 1
+
+
+*** Test Cases ***
+Test XApp Manager Health
+ [Tags] etetests xapptests
+ Run AppMgr Health Check
+
+
+Ensure RIC Xapp Onboarder is deployed and available
+ [Tags] etetests xapptests
+ ${controllerName} = Set Variable ${GLOBAL_TEST_XAPP_ONBOARDER}
+ ${cType} ${name} = Split String ${controllerName} |
+ Log To Console ${cType}
+ ${ctrl} = Run Keyword ${cType} ${name}
+ Should Be Equal ${ctrl.status.replicas} ${ctrl.status.ready_replicas}
+
+Ensure E2Sim is deployed and available
+ [Tags] etetests xapptests
+ ${ctrl} = Run Keyword deployment ${Global_RAN_DEPLOYMENT} ${Global_RAN_NAMESPACE}
+ Should Be Equal ${ctrl.status.replicas} ${ctrl.status.ready_replicas}
+
+Attempt To Undeploy An Already Undeployed XApp
+ [Tags] etetests xapptests intrusive
+ Undeploy Nondeployed XApp And Expect Error
+
+Attempt To Request A Nonexistent XApp
+ [Tags] etetests xapptests intrusive
+ Request Nonexistent XApp And Expect Error
+
+#Verify plmnid via E2mgr
+Get All NodeBs Via E2Mgr
+ [Tags] e2mgrtest etetests e2setup x2setup
+ ${log} = Run E2Mgr Get All NodeBs Request
+ FOR ${item} IN @{log.json()}
+ Log To Console ${item}
+ ${json}= Set variable ${item['globalNbId']["plmnId"]}
+ Log To Console ${json}
+ #Should Be Equal ${json} ${GLOBAL_PLMNID}
+ Exit For Loop If "${json}" == "${GLOBAL_PLMNID}"
+ Log ${json}
+ END
+
+Get All E2T Via E2Mgr
+ [Tags] e2mgrtests etetests e2setup x2setup
+ ${log} = Run E2Mgr Get All E2T Request
+ Log To Console ${log}
+
+#Verify gnbid via E2mgr
+Get All NodeBs Via E2Mgr
+ [Tags] e2mgrtest etetests e2setup x2setup
+ ${log} = Run E2Mgr Get All NodeBs Request
+ FOR ${item} IN @{log.json()}
+ Log To Console ${item}
+ ${json}= Set variable ${item['inventoryName']}
+ Log To Console ${json}
+ Exit For Loop If "${json}" == "${GLOBAL_GNBID}"
+ Log ${json}
+ END
+
+RetriveLog From XAPP
+ [Tags] etetests xapptests intrusive
+ ${podname} = Run Keyword RetrievePodsForDeployment ${GLOBAL_XAPP_DEPLOYMENT} namespace=ricxapp
+ Log To Console ${podname}
+ ${ric_xapp_pod1} = Set Variable ${podname[0]}
+ Log To Console ${ric_xapp_pod1}
+ ${log1} = Run keyword RetrieveLogForPod ${ric_xapp_pod1} namespace=ricxapp
+ ${stringLog} Convert To String ${log1}
+ Set Global Variable ${stringLog}
+ Set Global Variable ${log1}
+
+
+Verifying Subscription Request From Xapp
+ [Tags] etetests xapptests
+ Sleep 80
+ Log To Console "Sending Subscription Message from Xapp"
+ Should Match Regexp ${stringLog} Transmitted subscription request
+
+
+Verifying Subscription Requests on Submgr
+ [Tags] etetests xapptests
+ Sleep 20
+ Log To Console "Verifying the Subscription Requests on submgr"
+ ${subvalidation} = Run Keyword Run submgr SUBSCRIPTIONGET Request /ric/v1/subscriptions
+ Should Be Equal As Strings ${subvalidation} True
+
+
+Verifying Subscription Response From E2sim
+ [Tags] etetests xapptests
+ Log To Console "Received Subscription Message from RAN"
+ Should Match Regexp ${stringLog} Received subscription message of type = 12011
+
+Verifying Ric Indication on Xapp
+ [Tags] etetests xapptests
+ Log To Console "Received Indication Message from RAN"
+ Should Match Regexp ${stringLog} Received indication message of type = 12050
+
+Verifying Control message on Xapp
+ [Tags] etetests xapptests
+ Log To Console "Verified Control message from Xapp"
+ Should Match Regexp ${stringLog} Bouncer Control OK
+
+RetriveLog From duplicate XAPP
+ [Tags] etetests xapptests intrusive
+ ${podname} = Run Keyword RetrievePodsForDeployment ${GLOBAL_DUPLICATE_XAPP} namespace=ricxapp
+ Log To Console ${podname}
+ ${ric_xapp_pod2} = Set Variable ${podname[0]}
+ Log To Console ${ric_xapp_pod2}
+ ${log2} = Run keyword RetrieveLogForPod ${ric_xapp_pod2} namespace=ricxapp
+ ${stringLog1} Convert To String ${log2}
+ Set Global Variable ${stringLog1}
+ Set Global Variable ${log2}
+
+Verifying Subscription Requests on Submgr
+ [Tags] etetests xapptests
+ Sleep 20
+ Log To Console "Verifying the Subscription Requests on submgr"
+ ${subvalidation} = Run Keyword Run submgr SUBSCRIPTIONGET Request /ric/v1/subscriptions
+ Should Be Equal As Strings ${subvalidation} True
+
+Verifying Subscription Merge Requests on Submgr
+ [Tags] etetests xapptests
+ Log To Console "Verifying the Subscription Merge on submgr"
+ ${subvalidation1} = Run Keyword Run submgr SUBSCRIPTIONMERGE Check /ric/v1/subscriptions
+ Should Be Equal As Strings ${subvalidation1} True
+