package control
import (
+ "strings"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
-func TestRESTSubReqAndDeleteOkWithE2apUtWrapper(t *testing.T) {
-
+func TestSuiteSetup(t *testing.T) {
// The effect of this call shall endure thgough the UT suite!
// If this causes any issues, the previout interface can be restored
- // like this:
+ // like this:git log
// SetPackerIf(e2ap_wrapper.NewAsn1E2APPacker())
SetPackerIf(e2ap_wrapper.NewUtAsn1E2APPacker())
+ restDuplicateCtrl.Init()
+
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTSubReqAndDeleteOkWithE2apUtWrapper
+//
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | | RouteCreate | |
+// | |--------------------------->| // The order of these events may vary
+// | | | |
+// | RESTSubResp | | | // The order of these events may vary
+// |<----------------| | |
+// | | RouteResponse| |
+// | |<---------------------------| // The order of these events may vary
+// | | | |
+// | | SubReq | |
+// | |------------->| | // The order of these events may vary
+// | | | |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | | | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | | |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | | |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | | |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqAndDeleteOkWithE2apUtWrapper(t *testing.T) {
+
restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, nil)
deleteSubscription(t, xappConn1, e2termConn1, &restSubId)
waitSubsCleanup(t, e2SubsId, 10)
}
+//-----------------------------------------------------------------------------
+// TestRESTSubReqAndE1apDeleteReqPackingError
+//
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | | RouteCreate | |
+// | |--------------------------->| // The order of these events may vary
+// | | | |
+// | RESTSubResp | | | // The order of these events may vary
+// |<----------------| | |
+// | | RouteResponse| |
+// | |<---------------------------| // The order of these events may vary
+// | | | |
+// | | SubReq | |
+// | |------------->| | // The order of these events may vary
+// | | | |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | | | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | | | |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | | |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqAndE1apDeleteReqPackingError(t *testing.T) {
+
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, nil)
+
+ e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_DEL_REQ, false)
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ defer e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_DEL_REQ, true)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTSubReqAndE1apDeleteRespUnpackingError
+//
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | | RouteCreate | |
+// | |--------------------------->| // The order of these events may vary
+// | | | |
+// | RESTSubResp | | | // The order of these events may vary
+// |<----------------| | |
+// | | RouteResponse| |
+// | |<---------------------------| // The order of these events may vary
+// | | | |
+// | | SubReq | |
+// | |------------->| | // The order of these events may vary
+// | | | |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | | | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | | |
+// | RESTSubDelResp| | |
+// |<----------------| | | // The order of these events may vary
+// | | | |
+// | | SubDelResp | |
+// | |<-------------| | // 1.st NOK
+// | | | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | | |
+// | | SubDelResp | |
+// | |<-------------| | // 2.nd NOK
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTSubReqAndE1apDeleteRespUnpackingError(t *testing.T) {
+
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, nil)
+
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_DEL_RESP, false)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ defer e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_DEL_RESP, true)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+}
+
//-----------------------------------------------------------------------------
// TestSubReqAndRouteNok
//
CaseBegin("TestRESTSubReqAndRouteNok")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cRouteCreateFail, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Add delay for rtmgt HTTP handling so that HTTP response is received before notify on XAPP side
waiter := rtmgrHttp.AllocNextSleep(50, false)
newSubsId := mainCtrl.get_registry_next_subid(t)
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "failAll")
waiter.WaitResult(t)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
//Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
Counter{cRouteCreateUpdateFail, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
var params *teststube2ap.RESTSubsReqParams = nil
// xapp2 ROUTE creation shall fail with 400 from rtmgr -> submgr
waiter := rtmgrHttp.AllocNextEvent(false)
newSubsId := mainCtrl.get_registry_next_subid(t)
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for second subscriber : %v", restSubId2)
- xappConn2.ExpectRESTNotification(t, restSubId2)
+ xappConn2.ExpectRESTNotificationNok(t, restSubId2, "allFail")
waiter.WaitResult(t)
// e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) - TOD: missing delete
xappConn2.WaitRESTNotification(t, restSubId2)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cRouteDeleteFail, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
var params *teststube2ap.RESTSubsReqParams = nil
CaseBegin("TestRESTSubMergeDelAndRouteUpdateNok")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cRouteDeleteUpdateFail, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
var params *teststube2ap.RESTSubsReqParams = nil
// | RESTSubReq2 | |
// | (retrans) | |
// |---------------->| |
-// | | |
-// | | SubReq2 |
-// | |------------->|
-// | RESTSubResp2 | |
+// | RESTSubResp(201)| |
// |<----------------| |
+// | | |
// | | SubResp1 |
// | |<-------------|
// | RESTNotif1 | |
// |<----------------| |
-// | | SubResp1 |
-// | |<-------------|
-// | RESTNotif2 | |
-// |<----------------| |
// | | |
// | [SUBS DELETE] |
// | | |
CaseBegin("TestRESTSubReqRetransmission")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
- Counter{cSubReqToE2, 2},
- Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
- Counter{cSubDelReqToE2, 2},
- Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Retry/duplicate will get the same way as the first request. Submgr cannot detect duplicate RESTRequests
// Contianed duplicate messages from same xapp will not be merged. Here we use xappConn2 to simulate sending
// Subs Create
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// In order to force both XAPP's to create their own subscriptions, force rtmgr to block a while so that 2nd create
// gets into execution before the rtmgrg responds for the first one.
waiter := rtmgrHttp.AllocNextSleep(10, true)
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
- restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+ xappConn2.SendRESTSubsReq(t, params)
waiter.WaitResult(t)
- xappConn1.WaitListedRestNotifications(t, []string{restSubId1, restSubId2})
+ xappConn1.WaitListedRestNotifications(t, []string{restSubId1})
// Depending one goroutine scheduling order, we cannot say for sure which xapp reaches e2term first. Thus
// the order is not significant he6re.
crereq, cremsg := e2termConn1.RecvSubsReq(t)
e2termConn1.SendSubsResp(t, crereq, cremsg)
- crereq, cremsg = e2termConn1.RecvSubsReq(t)
- e2termConn1.SendSubsResp(t, crereq, cremsg)
e2SubsIdA := <-xappConn1.ListedRESTNotifications
xapp.Logger.Info("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
- e2SubsIdB := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
// Del1
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
delreq1, delmsg1 := e2termConn1.RecvSubsDelReq(t)
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
- // Del2
- xappConn2.SendRESTSubsDelReq(t, &restSubId2)
- delreq2, delmsg2 := e2termConn1.RecvSubsDelReq(t)
- e2termConn1.SendSubsDelResp(t, delreq2, delmsg2)
-
- mainCtrl.wait_multi_subs_clean(t, []uint32{e2SubsIdA.E2SubsId, e2SubsIdB.E2SubsId}, 10)
-
- waitSubsCleanup(t, e2SubsIdB.E2SubsId, 10)
+ mainCtrl.wait_multi_subs_clean(t, []uint32{e2SubsIdA.E2SubsId}, 10)
mainCtrl.VerifyCounterValues(t)
}
CaseBegin("TestRESTSubDelReqRetransmission")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
var params *teststube2ap.RESTSubsReqParams = nil
CaseBegin("TestRESTSubReqDelReq")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
// Del. This will fail as processing of the subscription
CaseBegin("TestRESTSubReqAndSubDelOkTwoParallel")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
//Req1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
//Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
CaseBegin("TestRESTSameSubsDiffRan")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
xapp.Logger.Info("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
- params = xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_2")
restSubId2, e2SubsId2 := createSubscription(t, xappConn1, e2termConn1, params)
xapp.Logger.Info("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
// | | |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) {
CaseBegin("TestRESTSubReqTwoRetriesNoRespSubDelRespInSubmgr start")
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
Counter{cSubDelRespFromE2, 1},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
xapp.Logger.Info("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
- // e2SubsId := xappConn1.WaitRESTNotification(t, restSubId) - TODO: Should we delete this?
xappConn1.WaitRESTNotification(t, restSubId)
// Wait that subs is cleaned
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
Counter{cSubDelReqTimerExpiry, 2},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsDelReq(t)
xapp.Logger.Info("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.RecvSubsDelReq(t)
xapp.Logger.Info("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
Counter{cSubDelReqTimerExpiry, 2},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsDelReq(t)
xapp.Logger.Info("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.RecvSubsDelReq(t)
xapp.Logger.Info("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
CaseBegin("TestRESTSubReqSubFailRespInSubmgr")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubFailFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
e2termConn1.SendSubsFail(t, fparams1, cremsg1)
delreq1, delmsg1 := e2termConn1.RecvSubsDelReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
CaseBegin("TestRESTSubDelReqRetryInSubmgr")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelReReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
var params *teststube2ap.RESTSubsReqParams = nil
CaseBegin("TestRESTSubDelReTwoRetriesNoRespInSubmgr")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelReReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
CaseBegin("TestRESTSubDelReqSubDelFailRespInSubmgr")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelFailFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
CaseBegin("TestRESTSubReqAndSubDelOkSameAction")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cMergedSubscriptions, 1},
Counter{cUnmergedSubscriptions, 1},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
xapp.Subscription.SetResponseCB(xappConn2.SubscriptionRespHandler)
CaseBegin("TestRESTSubReqAndSubDelOkSameActionParallel")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
- params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount)
restSubId2 := xappConn2.SendRESTSubsReq(t, params2)
xappConn1.ExpectRESTNotification(t, restSubId1)
CaseBegin("TestRESTSubReqAndSubDelNoAnswerSameActionParallel")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubFailNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Req1
- params1 := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params1 := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params1)
crereq1, _ := e2termConn1.RecvSubsReq(t)
// Req2
subepcnt2 := mainCtrl.get_subs_entrypoint_cnt(t, crereq1.RequestId.InstanceId)
- params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount)
params2.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params2)
mainCtrl.wait_subs_entrypoint_cnt_change(t, crereq1.RequestId.InstanceId, subepcnt2, 10)
CaseBegin("TestRESTSubReqAndSubDelNokSameActionParallel")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubFailFromE2, 1},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubFailNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Req1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
// Req2
subepcnt2 := mainCtrl.get_subs_entrypoint_cnt(t, crereq1.RequestId.InstanceId)
- params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params2 := xappConn2.GetRESTSubsReqReportParams(subReqCount)
params2.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params2)
mainCtrl.wait_subs_entrypoint_cnt_change(t, crereq1.RequestId.InstanceId, subepcnt2, 10)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST Policy subscriber request for subscriberId : %v", restSubId)
CaseBegin("TestRESTSubReqPolicyAndSubDelOk")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const policyParamCount int = 1
// Req
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
// Policy change
- instanceId := int64(e2SubsId)
// GetRESTSubsReqPolicyParams sets some coutners on tc side.
- params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
- params.SubsReqParams.SubscriptionDetails[0].InstanceID = &instanceId
+
+ params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionID(&restSubId)
params.SetTimeToWait("w200ms")
restSubId, e2SubsId = createSubscription(t, xappConn1, e2termConn1, params)
mainCtrl.VerifyCounterValues(t)
}
+//-----------------------------------------------------------------------------
+// TestRESTSubReqPolicyChangeNOk
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp |
+// | |<-------------|
+// | | |
+// | RESTNotif | |
+// |<----------------| |
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubUpdateFail |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqPolicyChangeNOk(t *testing.T) {
+ CaseBegin("TestRESTSubReqPolicyChangeNOk")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 1},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubFailToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ const subReqCount int = 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Policy change
+
+ params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+
+ restSubIdUpd := strings.ToUpper(restSubId)
+ params.SetSubscriptionID(&restSubIdUpd)
+ params.SetTimeToWait("w200ms")
+
+ restSubId2 := xappConn1.SendRESTSubsReq(t, params)
+ assert.Equal(t, restSubId2, "")
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ waitSubsCleanup(t, e2SubsId, 10)
+ mainCtrl.VerifyCounterValues(t)
+}
+
//-----------------------------------------------------------------------------
// TestRESTSubReqAndSubDelOkTwoE2termParallel
//
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Req1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_11")
// Here we use xappConn2 to simulate sending second request from same xapp as doing it from xappConn1
// would not work as notification would not be received
CaseBegin("TestRESTInsertSubReqAndSubDelOk")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
- const parameterSet int = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
params.SetSubActionTypes("insert")
// Req
CaseBegin("TestRESTSubReqNokAndSubDelOkWithRestartInMiddle")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
})
const subReqCount int = 1
- const parameterSet = 1
- const actionDefinitionPresent bool = true
- const actionParamCount int = 1
// Remove possible existing subscription
mainCtrl.removeExistingSubscriptions(t)
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
//Req
mainCtrl.SetResetTestFlag(t, true) // subs.DoNotWaitSubResp will be set TRUE for the subscription
// |<----------------| |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqAndSubDelOkWithRestartInMiddle(t *testing.T) {
CaseBegin("TestRESTSubReqAndSubDelOkWithRestartInMiddle")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 1},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Remove possible existing subscription
// | | | |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle(t *testing.T) {
CaseBegin("TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cMergedSubscriptions, 1},
Counter{cUnmergedSubscriptions, 1},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Remove possible existing subscription
xapp.Logger.Info("Send REST subscriber request for subscriber 1 : %v", restSubId1)
// Create subscription 2 with same action
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
xapp.Subscription.SetResponseCB(xappConn2.SubscriptionRespHandler)
xappConn2.WaitRESTNotificationForAnySubscriptionId(t)
// |<----------------| |
//
//-----------------------------------------------------------------------------
+
func TestRESTReportSubReqAndSubDelOk(t *testing.T) {
CaseBegin("TestRESTReportSubReqAndSubDelOk")
subReqCount := 1
- parameterSet := 1 // E2SM-gNB-X2
- actionDefinitionPresent := true
- actionParamCount := 1
testIndex := 1
- RESTReportSubReqAndSubDelOk(t, subReqCount, parameterSet, actionDefinitionPresent, actionParamCount, testIndex)
+ RESTReportSubReqAndSubDelOk(t, subReqCount, testIndex)
}
-func RESTReportSubReqAndSubDelOk(t *testing.T, subReqCount int, parameterSet int, actionDefinitionPresent bool, actionParamCount int, testIndex int) {
- xapp.Logger.Info("TEST: TestRESTReportSubReqAndSubDelOk with parameter set %v", testIndex)
+func RESTReportSubReqAndSubDelOk(t *testing.T, subReqCount int, testIndex int) {
+ xapp.Logger.Info("TEST: TestRESTReportSubReqAndSubDelOk with testIndex %v", testIndex)
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
var e2SubsId []uint32
CaseBegin("TestRESTPolicySubReqAndSubDelOk")
subReqCount := 2
- actionDefinitionPresent := true
- policyParamCount := 1
testIndex := 1
- RESTPolicySubReqAndSubDelOk(t, subReqCount, actionDefinitionPresent, policyParamCount, testIndex)
+ RESTPolicySubReqAndSubDelOk(t, subReqCount, testIndex)
subReqCount = 19
- actionDefinitionPresent = false
- policyParamCount = 0
testIndex = 2
- RESTPolicySubReqAndSubDelOk(t, subReqCount, actionDefinitionPresent, policyParamCount, testIndex)
+ RESTPolicySubReqAndSubDelOk(t, subReqCount, testIndex)
}
*/
-func RESTPolicySubReqAndSubDelOk(t *testing.T, subReqCount int, actionDefinitionPresent bool, policyParamCount int, testIndex int) {
- xapp.Logger.Info("TEST: TestRESTPolicySubReqAndSubDelOk with parameter set %v", testIndex)
+func RESTPolicySubReqAndSubDelOk(t *testing.T, subReqCount int, testIndex int) {
+ xapp.Logger.Info("TEST: TestRESTPolicySubReqAndSubDelOk with testIndex %v", testIndex)
// Req
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- //params := xappConn1.GetRESTSubsReqPolicyParams1(subReqCount, actionDefinitionPresent, policyParamCount)
+ //params := xappConn1.GetRESTSubsReqPolicyParams1(subReqCount)
//restSubId := xappConn1.SendRESTPolicySubsReq(t, params)
var e2SubsId []uint32
subReqCount := 2
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
e2SubsIds := sendAndReceiveMultipleE2SubReqs(t, subReqCount, xappConn1, e2termConn1, restSubId)
subReqCount := 19
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 19},
Counter{cSubRespFromE2, 19},
- Counter{cSubRespToXapp, 19},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, 19},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 19},
Counter{cSubDelRespFromE2, 19},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
e2SubsIds := sendAndReceiveMultipleE2SubReqs(t, subReqCount, xappConn1, e2termConn1, restSubId)
func TestRESTTwoReportSubReqAndSubDelOk(t *testing.T) {
subReqCount := 2
- parameterSet := 1
- actionDefinitionPresent := true
- actionParamCount := 1
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cSubRespToXapp, uint64(subReqCount)},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
e2SubsIds := sendAndReceiveMultipleE2SubReqs(t, subReqCount, xappConn1, e2termConn1, restSubId)
func TestRESTTwoReportSubReqAndSubDelOkNoActParams(t *testing.T) {
subReqCount := 2
- parameterSet := 1
- actionDefinitionPresent := false
- actionParamCount := 0
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cSubRespToXapp, uint64(subReqCount)},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
e2SubsIds := sendAndReceiveMultipleE2SubReqs(t, subReqCount, xappConn1, e2termConn1, restSubId)
func TestRESTFullAmountReportSubReqAndSubDelOk(t *testing.T) {
subReqCount := 19
- parameterSet := 1
- actionDefinitionPresent := false
- actionParamCount := 0
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cSubRespToXapp, uint64(subReqCount)},
- Counter{cSubDelReqFromXapp, 1},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
- Counter{cSubDelRespToXapp, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
// Req
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
e2SubsIds := sendAndReceiveMultipleE2SubReqs(t, subReqCount, xappConn1, e2termConn1, restSubId)
CaseBegin("TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- eventTriggerDefinition := "1234"
+ eventTriggerDefinition := []int64{1234, 1}
params.SetSubEventTriggerDefinition(eventTriggerDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
CaseBegin("TestRESTSubReqReportSameActionDiffActionListLen")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
actionId := int64(1)
actionType := "report"
- actionDefinition := "56781"
+ actionDefinition := []int64{5678, 1}
subsequestActionType := "continue"
timeToWait := "w10ms"
params.AppendActionToActionToBeSetupList(actionId, actionType, actionDefinition, subsequestActionType, timeToWait)
CaseBegin("TestRESTSubReqReportSameActionDiffActionID")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
params.SetSubActionIDs(int64(2))
CaseBegin("TestRESTSubReqDiffActionType")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
CaseBegin("TestRESTSubReqPolicyAndSubDelOkSameAction")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params = xappConn2.GetRESTSubsReqPolicyParams(subReqCount)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionLen")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- actionDefinition := "5678"
+ actionDefinition := []int64{5678, 1}
params.SetSubActionDefinition(actionDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionContents")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- actionDefinition := "56782"
+ actionDefinition := []int64{56782}
params.SetSubActionDefinition(actionDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
CaseBegin("TestRESTSubReqReportSameActionDiffSubsAction")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cSubReqFromXapp, 2},
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cSubRespToXapp, 2},
- Counter{cSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
- Counter{cSubDelRespToXapp, 2},
+ Counter{cRestSubDelRespToXapp, 2},
})
// Req1
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
params.SetTimeToWait("w200ms")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
}
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionResponseDecodeFail
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp | ASN.1 decode fails
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTUnpackSubscriptionResponseDecodeFail(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseDecodeFail")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+ // Decode of this response fails which will result resending original request
+ e2termConn1.SendInvalidE2Asn1Resp(t, cremsg, xapp.RIC_SUB_RESP)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionResponseUnknownInstanceId
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp | Unknown instanceId
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTUnpackSubscriptionResponseUnknownInstanceId(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseUnknownInstanceId")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+
+ // Unknown instanceId in this response which will result resending original request
+ orgInstanceId := crereq.RequestId.InstanceId
+ crereq.RequestId.InstanceId = 0
+ e2termConn1.SendSubsResp(t, crereq, cremsg)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, orgInstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionResponseNoTransaction
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp | No transaction for the response
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionResponseNoTransaction(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseNoTransaction")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+
+ mainCtrl.MakeTransactionNil(t, crereq.RequestId.InstanceId)
+ // No transaction exist for this response which will result resending original request
+ e2termConn1.SendSubsResp(t, crereq, cremsg)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // Resending happens because there no transaction
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionFailureDecodeFail
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | ASN.1 decode fails
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionFailureDecodeFail(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureDecodeFail")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+
+ // Decode of this response fails which will result resending original request
+ e2termConn1.SendInvalidE2Asn1Resp(t, cremsg, xapp.RIC_SUB_FAILURE)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionResponseUnknownInstanceId
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Unknown instanceId
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionFailureUnknownInstanceId(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureUnknownInstanceId")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+
+ // Unknown instanceId in this response which will result resending original request
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ fparams.Fail.RequestId.InstanceId = 0
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionFailureNoTransaction
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RestSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | No transaction for the response
+// | |<-------------|
+// | | |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubFail | Duplicated action
+// | |<-------------|
+// | RESTNotif (fail)| |
+// |<----------------| |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionFailureNoTransaction(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureNoTransaction")
+ subReqCount := 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+
+ mainCtrl.MakeTransactionNil(t, crereq.RequestId.InstanceId)
+
+ // No transaction exist for this response which will result resending original request
+ fparams := &teststube2ap.E2StubSubsFailParams{}
+ fparams.Set(crereq)
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ _, cremsg = e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription already created in E2 Node.
+ fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
+ e2termConn1.SendSubsFail(t, fparams, cremsg)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // Resending happens because there no transaction
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ instanceId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteResponseDecodeFail
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp | ASN.1 decode fails
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+// | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteResponseDecodeFail(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseDecodeFail")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ // Decode of this response fails which will result resending original request
+ e2termConn1.SendInvalidE2Asn1Resp(t, delmsg, xapp.RIC_SUB_DEL_REQ)
+
+ // E2t: Receive 2nd SubsDelReq and send SubsDelResp
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp | Unknown instanceId
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ // Unknown instanceId in this response which will result resending original request
+ delreq.RequestId.InstanceId = 0
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // E2t: Receive 2nd SubsDelReq
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteResponseNoTransaction
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp | No transaction for the response
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteResponseNoTransaction(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseNoTransaction")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ mainCtrl.MakeTransactionNil(t, e2SubsId)
+
+ // No transaction exist for this response which will result resending original request
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // E2t: Receive 2nd SubsDelReq
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteFailureDecodeFail
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | ASN.1 decode fails
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteFailureDecodeFail(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteFailureDecodeFail")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ // Decode of this response fails which will result resending original request
+ e2termConn1.SendInvalidE2Asn1Resp(t, delmsg, xapp.RIC_SUB_DEL_FAILURE)
+
+ // E2t: Receive 2nd SubsDelReq and send SubsDelResp
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Unknown instanceId
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ // Unknown instanceId in this response which will result resending original request
+ delreq.RequestId.InstanceId = 0
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // E2t: Receive 2nd SubsDelReq
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTUnpackSubscriptionDeleteFailureNoTransaction
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | [SUBS CREATE] |
+// | | |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | No transaction for the response
+// | |<-------------|
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail | Subscription does exist any more
+// | |<-------------|
+//
+//-----------------------------------------------------------------------------
+func TestRESTUnpackSubscriptionDeleteFailureNoTransaction(t *testing.T) {
+ xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteFailureNoTransaction")
+
+ // Req
+ var params *teststube2ap.RESTSubsReqParams = nil
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ // E2t: Receive 1st SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ mainCtrl.MakeTransactionNil(t, e2SubsId)
+
+ // No transaction exist for this response which will result resending original request
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // E2t: Receive 2nd SubsDelReq
+ delreq, delmsg = e2termConn1.RecvSubsDelReq(t)
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTSubReqFailAsn1PackSubReqError
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | |
+// | ASN.1 encode fails |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelFail |
+// | |<-------------|
+// | | |
+// | RESTNotif | |
+// | unsuccess | |
+// |<----------------| |
+// | | |
+// | [SUBS DELETE] |
+// | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqFailAsn1PackSubReqError(t *testing.T) {
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelFailFromE2, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
+ })
+
+ subReqCount := 1
+
+ var params *teststube2ap.RESTSubsReqParams = nil
+ params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_REQ, false)
+
+ // Req
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId)
+
+ // E2t: Receive SubsDelReq
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
+
+ // Subscription does not exist in in E2 Node.
+ e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+
+ e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
+
+ e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_REQ, true)
+ // Wait that subs is cleaned
+ waitSubsCleanup(t, e2SubsId, 10)
+ mainCtrl.VerifyCounterValues(t)
+}
+
////////////////////////////////////////////////////////////////////////////////////
// Services for UT cases
////////////////////////////////////////////////////////////////////////////////////
const subReqCount int = 1
-const parameterSet = 1
-const actionDefinitionPresent bool = true
-const actionParamCount int = 1
-const policyParamCount int = 1
const host string = "localhost"
func createSubscription(t *testing.T, fromXappConn *teststube2ap.E2Stub, toE2termConn *teststube2ap.E2Stub, params *teststube2ap.RESTSubsReqParams) (string, uint32) {
if params == nil {
- params = fromXappConn.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params = fromXappConn.GetRESTSubsReqReportParams(subReqCount)
}
restSubId := fromXappConn.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId)
func createXapp2MergedSubscription(t *testing.T, meid string) (string, uint32) {
- params := xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn2.GetRESTSubsReqReportParams(subReqCount)
if meid != "" {
params.SetMeid(meid)
}
}
func createXapp1PolicySubscription(t *testing.T) (string, uint32) {
- params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
xapp.Logger.Info("Send REST Policy subscriber request for subscriberId : %v", restSubId)
}
func createXapp1ReportSubscriptionE2Fail(t *testing.T) (string, uint32) {
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)