X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fut_messaging_test.go;h=81df76a569466270809b443c45b7da8bc446385a;hb=27433e7186d593276c5c3b9a4af08dc36947882f;hp=20f8709553532cad6bc647cc1cd8ee27329016fc;hpb=fe2cdabf98e8d1028bbe1713daa187e538f042a0;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/ut_messaging_test.go b/pkg/control/ut_messaging_test.go index 20f8709..81df76a 100644 --- a/pkg/control/ut_messaging_test.go +++ b/pkg/control/ut_messaging_test.go @@ -24,11 +24,178 @@ import ( "time" "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap" + "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap_wrapper" "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/teststube2ap" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" "github.com/stretchr/testify/assert" ) +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:git log + // SetPackerIf(e2ap_wrapper.NewAsn1E2APPacker()) + + SetPackerIf(e2ap_wrapper.NewUtAsn1E2APPacker()) +} + +//----------------------------------------------------------------------------- +// 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 // @@ -2234,23 +2401,20 @@ func TestRESTSubReqAndRouteNok(t *testing.T) { CaseBegin("TestRESTSubReqAndRouteNok") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cRouteCreateFail, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubRespToXapp, 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) waiter.WaitResult(t) @@ -2272,15 +2436,15 @@ func TestRESTSubReqAndRouteUpdateNok(t *testing.T) { //Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 2}, + Counter{cRestSubRespToXapp, 2}, 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 @@ -2293,7 +2457,7 @@ func TestRESTSubReqAndRouteUpdateNok(t *testing.T) { // 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) @@ -2318,15 +2482,15 @@ func TestRESTSubDelReqAndRouteDeleteNok(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 1}, + Counter{cRestSubDelReqFromXapp, 1}, Counter{cRouteDeleteFail, 1}, Counter{cSubDelReqToE2, 1}, Counter{cSubDelRespFromE2, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubDelRespToXapp, 1}, }) var params *teststube2ap.RESTSubsReqParams = nil @@ -2351,15 +2515,15 @@ func TestRESTSubMergeDelAndRouteUpdateNok(t *testing.T) { CaseBegin("TestRESTSubMergeDelAndRouteUpdateNok") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cRouteDeleteUpdateFail, 1}, Counter{cSubDelReqToE2, 1}, Counter{cSubDelRespFromE2, 1}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) var params *teststube2ap.RESTSubsReqParams = nil @@ -2429,14 +2593,14 @@ func TestRESTSubReqRetransmission(t *testing.T) { CaseBegin("TestRESTSubReqRetransmission") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // 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 @@ -2444,14 +2608,11 @@ func TestRESTSubReqRetransmission(t *testing.T) { // 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) @@ -2492,14 +2653,14 @@ func TestRESTSubDelReqRetransmission(t *testing.T) { CaseBegin("TestRESTSubDelReqRetransmission") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 1}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 1}, Counter{cSubDelRespFromE2, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubDelRespToXapp, 1}, }) var params *teststube2ap.RESTSubsReqParams = nil @@ -2557,23 +2718,20 @@ func TestRESTSubReqDelReq(t *testing.T) { CaseBegin("TestRESTSubReqDelReq") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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 @@ -2605,23 +2763,23 @@ func TestRESTSubReqAndSubDelOkTwoParallel(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelOkTwoParallel") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -2658,21 +2816,21 @@ func TestRESTSameSubsDiffRan(t *testing.T) { CaseBegin("TestRESTSameSubsDiffRan") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -2695,18 +2853,18 @@ func TestRESTSubReqRetryInSubmgr(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubReReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -2776,7 +2934,7 @@ func TestRESTSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubReReqToE2, 1}, Counter{cSubReqTimerExpiry, 2}, @@ -2784,7 +2942,7 @@ func TestRESTSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) { 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) @@ -2811,7 +2969,7 @@ func TestREST2eTermNotRespondingToSubReq(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubReReqToE2, 1}, Counter{cSubReqTimerExpiry, 2}, @@ -2819,7 +2977,7 @@ func TestREST2eTermNotRespondingToSubReq(t *testing.T) { 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) @@ -2887,7 +3045,7 @@ func TestRESTSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubReReqToE2, 1}, Counter{cSubReqTimerExpiry, 2}, @@ -2896,7 +3054,7 @@ func TestRESTSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) { 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) @@ -2957,19 +3115,16 @@ func TestRESTSubReqSubFailRespInSubmgr(t *testing.T) { CaseBegin("TestRESTSubReqSubFailRespInSubmgr") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubFailFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -3024,15 +3179,15 @@ func TestRESTSubDelReqRetryInSubmgr(t *testing.T) { CaseBegin("TestRESTSubDelReqRetryInSubmgr") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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 @@ -3083,15 +3238,15 @@ func TestRESTSubDelReqTwoRetriesNoRespInSubmgr(t *testing.T) { CaseBegin("TestRESTSubDelReTwoRetriesNoRespInSubmgr") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 1}, + Counter{cRestSubDelReqFromXapp, 1}, Counter{cSubDelReqToE2, 1}, Counter{cSubDelReReqToE2, 1}, Counter{cSubDelRespFromE2, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubDelRespToXapp, 1}, }) // Req @@ -3142,14 +3297,14 @@ func TestRESTSubDelReqSubDelFailRespInSubmgr(t *testing.T) { CaseBegin("TestRESTSubDelReqSubDelFailRespInSubmgr") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 1}, + Counter{cRestSubDelReqFromXapp, 1}, Counter{cSubDelReqToE2, 1}, Counter{cSubDelFailFromE2, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubDelRespToXapp, 1}, }) // Req @@ -3223,16 +3378,16 @@ func TestRESTSubReqAndSubDelOkSameAction(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelOkSameAction") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 2}, + Counter{cRestSubRespToXapp, 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 @@ -3243,7 +3398,7 @@ func TestRESTSubReqAndSubDelOkSameAction(t *testing.T) { 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) @@ -3320,21 +3475,21 @@ func TestRESTSubReqAndSubDelOkSameActionParallel(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelOkSameActionParallel") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -3417,28 +3572,25 @@ func TestRESTSubReqAndSubDelNoAnswerSameActionParallel(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelNoAnswerSameActionParallel") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -3523,29 +3675,26 @@ func TestRESTSubReqAndSubDelNokSameActionParallel(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelNokSameActionParallel") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, Counter{cSubFailFromE2, 1}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -3583,22 +3732,19 @@ func TestRESTSubReqPolicyAndSubDelOk(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -3670,29 +3816,26 @@ func TestRESTSubReqPolicyChangeAndSubDelOk(t *testing.T) { CaseBegin("TestRESTSubReqPolicyAndSubDelOk") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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 = xappConn1.GetRESTSubsReqPolicyParams(subReqCount) params.SubsReqParams.SubscriptionDetails[0].InstanceID = &instanceId params.SetTimeToWait("w200ms") restSubId, e2SubsId = createSubscription(t, xappConn1, e2termConn1, params) @@ -3754,28 +3897,25 @@ func TestRESTSubReqAndSubDelOkTwoE2termParallel(t *testing.T) { // Init counter check mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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 @@ -3882,22 +4022,19 @@ func TestRESTSubReqInsertAndSubDelOk(t *testing.T) { CaseBegin("TestRESTInsertSubReqAndSubDelOk") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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 @@ -3946,7 +4083,7 @@ func TestRESTSubReqNokAndSubDelOkWithRestartInMiddle(t *testing.T) { CaseBegin("TestRESTSubReqNokAndSubDelOkWithRestartInMiddle") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubDelReqFromXapp, 1}, Counter{cSubDelReqToE2, 1}, @@ -3954,14 +4091,11 @@ func TestRESTSubReqNokAndSubDelOkWithRestartInMiddle(t *testing.T) { }) 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 @@ -4029,13 +4163,13 @@ func TestRESTSubReqAndSubDelOkWithRestartInMiddle(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelOkWithRestartInMiddle") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 1}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 1}, + Counter{cRestSubDelReqFromXapp, 1}, Counter{cSubDelReqToE2, 1}, - Counter{cSubDelRespToXapp, 1}, + Counter{cRestSubDelRespToXapp, 1}, }) // Remove possible existing subscription @@ -4127,16 +4261,16 @@ func TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle(t *testing.T) { CaseBegin("TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 1}, Counter{cSubRespFromE2, 1}, - Counter{cSubRespToXapp, 2}, + Counter{cRestSubRespToXapp, 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 @@ -4149,7 +4283,7 @@ func TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle(t *testing.T) { 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) @@ -4236,18 +4370,15 @@ func TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle(t *testing.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 @@ -4289,25 +4420,21 @@ func TestRESTPolicySubReqAndSubDelOk(t *testing.T) { 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 @@ -4342,18 +4469,18 @@ func TestRESTTwoPolicySubReqAndSubDelOk(t *testing.T) { subReqCount := 2 mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -4374,18 +4501,18 @@ func TestRESTPolicySubReqAndSubDelOkFullAmount(t *testing.T) { subReqCount := 19 mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, 19}, Counter{cSubRespFromE2, 19}, - Counter{cSubRespToXapp, 19}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -4403,23 +4530,20 @@ func TestRESTPolicySubReqAndSubDelOkFullAmount(t *testing.T) { func TestRESTTwoReportSubReqAndSubDelOk(t *testing.T) { subReqCount := 2 - parameterSet := 1 - actionDefinitionPresent := true - actionParamCount := 1 mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, uint64(subReqCount)}, Counter{cSubRespFromE2, uint64(subReqCount)}, - Counter{cSubRespToXapp, uint64(subReqCount)}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -4439,23 +4563,20 @@ func TestRESTTwoReportSubReqAndSubDelOk(t *testing.T) { func TestRESTTwoReportSubReqAndSubDelOkNoActParams(t *testing.T) { subReqCount := 2 - parameterSet := 1 - actionDefinitionPresent := false - actionParamCount := 0 mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, uint64(subReqCount)}, Counter{cSubRespFromE2, uint64(subReqCount)}, - Counter{cSubRespToXapp, uint64(subReqCount)}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -4475,23 +4596,20 @@ func TestRESTTwoReportSubReqAndSubDelOkNoActParams(t *testing.T) { func TestRESTFullAmountReportSubReqAndSubDelOk(t *testing.T) { subReqCount := 19 - parameterSet := 1 - actionDefinitionPresent := false - actionParamCount := 0 mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 1}, + Counter{cRestSubReqFromXapp, 1}, Counter{cSubReqToE2, uint64(subReqCount)}, Counter{cSubRespFromE2, uint64(subReqCount)}, - Counter{cSubRespToXapp, uint64(subReqCount)}, - Counter{cSubDelReqFromXapp, 1}, + Counter{cRestSubRespToXapp, 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) @@ -4512,14 +4630,14 @@ func TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4532,7 +4650,7 @@ func TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen(t *testing.T) { 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" params.SetSubEventTriggerDefinition(eventTriggerDefinition) @@ -4558,14 +4676,14 @@ func TestRESTSubReqReportSameActionDiffActionListLen(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffActionListLen") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4578,7 +4696,7 @@ func TestRESTSubReqReportSameActionDiffActionListLen(t *testing.T) { 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) @@ -4609,14 +4727,14 @@ func TestRESTSubReqReportSameActionDiffActionID(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffActionID") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4629,7 +4747,7 @@ func TestRESTSubReqReportSameActionDiffActionID(t *testing.T) { 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)) @@ -4654,18 +4772,18 @@ func TestRESTSubReqDiffActionType(t *testing.T) { CaseBegin("TestRESTSubReqDiffActionType") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -4674,7 +4792,7 @@ func TestRESTSubReqDiffActionType(t *testing.T) { 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) @@ -4698,18 +4816,18 @@ func TestRESTSubReqPolicyAndSubDelOkSameAction(t *testing.T) { CaseBegin("TestRESTSubReqPolicyAndSubDelOkSameAction") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 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) @@ -4718,7 +4836,7 @@ func TestRESTSubReqPolicyAndSubDelOkSameAction(t *testing.T) { 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) @@ -4742,14 +4860,14 @@ func TestRESTSubReqReportSameActionDiffActionDefinitionLen(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionLen") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4762,7 +4880,7 @@ func TestRESTSubReqReportSameActionDiffActionDefinitionLen(t *testing.T) { 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" params.SetSubActionDefinition(actionDefinition) @@ -4788,14 +4906,14 @@ func TestRESTSubReqReportSameActionDiffActionDefinitionContents(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionContents") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4808,7 +4926,7 @@ func TestRESTSubReqReportSameActionDiffActionDefinitionContents(t *testing.T) { 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" params.SetSubActionDefinition(actionDefinition) @@ -4834,14 +4952,14 @@ func TestRESTSubReqReportSameActionDiffSubsAction(t *testing.T) { CaseBegin("TestRESTSubReqReportSameActionDiffSubsAction") mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ - Counter{cSubReqFromXapp, 2}, + Counter{cRestSubReqFromXapp, 2}, Counter{cSubReqToE2, 2}, Counter{cSubRespFromE2, 2}, - Counter{cSubRespToXapp, 2}, - Counter{cSubDelReqFromXapp, 2}, + Counter{cRestSubRespToXapp, 2}, + Counter{cRestSubDelReqFromXapp, 2}, Counter{cSubDelReqToE2, 2}, Counter{cSubDelRespFromE2, 2}, - Counter{cSubDelRespToXapp, 2}, + Counter{cRestSubDelRespToXapp, 2}, }) // Req1 @@ -4854,7 +4972,7 @@ func TestRESTSubReqReportSameActionDiffSubsAction(t *testing.T) { 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) @@ -4874,19 +4992,893 @@ func TestRESTSubReqReportSameActionDiffSubsAction(t *testing.T) { } +//----------------------------------------------------------------------------- +// 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.ExpectRESTNotification(t, restSubId) + + // 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.ExpectRESTNotification(t, restSubId) + + // 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.ExpectRESTNotification(t, restSubId) + + // 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.ExpectRESTNotification(t, restSubId) + + // 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.ExpectRESTNotification(t, restSubId) + + // 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.ExpectRESTNotification(t, restSubId) + + // 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{cSubDelReqToE2, 1}, + Counter{cSubDelFailFromE2, 1}, + Counter{cRestSubRespToXapp, 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.ExpectRESTNotification(t, restSubId) + + // 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) @@ -4902,7 +5894,7 @@ func createSubscription(t *testing.T, fromXappConn *teststube2ap.E2Stub, toE2ter 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) } @@ -4917,7 +5909,7 @@ func createXapp2MergedSubscription(t *testing.T, meid string) (string, uint32) { } 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) @@ -4931,7 +5923,7 @@ func createXapp1PolicySubscription(t *testing.T) (string, uint32) { } 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)