+
+ <-time.After(1 * time.Second)
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// TestSubReqAndRouteUpdateNok
+
+// stub stub
+// +-------+ +-------+ +---------+ +---------+
+// | xapp2 | | xapp1 | | submgr | | rtmgr |
+// +-------+ +-------+ +---------+ +---------+
+// | | | |
+// | [SUBS CREATE] | |
+// | | | |
+// | | | |
+// | | | |
+// | SubReq (mergeable) | |
+// |--------------------------->| | |
+// | | | |
+// | | | RouteUpdate |
+// | | |------------->|
+// | | | |
+// | | | RouteUpdate |
+// | | | status:400 |
+// | | |<-------------|
+// | | | |
+// | [SUBS INT DELETE] | |
+// | | | |
+// | | | |
+// | [SUBS DELETE] | |
+// | | | |
+func TestSubReqAndRouteUpdateNok(t *testing.T) {
+ CaseBegin("TestSubReqAndRouteUpdateNok")
+
+ // Init counter check
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cSubReqFromXapp, 2},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cSubRespToXapp, 1},
+ Counter{cRouteCreateUpdateFail, 1},
+ Counter{cSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cSubDelRespToXapp, 1},
+ })
+
+ cretrans := xappConn1.SendSubsReq(t, nil, nil)
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+ e2termConn1.SendSubsResp(t, crereq, cremsg)
+ e2SubsId := xappConn1.RecvSubsResp(t, cretrans)
+
+ resp, _ := xapp.Subscription.QuerySubscriptions()
+ assert.Equal(t, resp[0].SubscriptionID, int64(e2SubsId))
+ assert.Equal(t, resp[0].Meid, "RAN_NAME_1")
+ assert.Equal(t, resp[0].ClientEndpoint, []string{"localhost:13560"})
+
+ waiter := rtmgrHttp.AllocNextEvent(false)
+ newSubsId := mainCtrl.get_registry_next_subid(t)
+ xappConn2.SendSubsReq(t, nil, nil)
+ waiter.WaitResult(t)
+
+ deltrans := xappConn1.SendSubsDelReq(t, nil, e2SubsId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+ xappConn1.RecvSubsDelResp(t, deltrans)
+
+ //Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, newSubsId, 10)
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ xappConn2.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// TestSubDelReqAndRouteDeleteNok
+//
+// stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | [SUBS CREATE] | |
+// | | | |
+// | | | |
+// | | | |
+// | SubDelReq | | |
+// |------------->| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelRsp | |
+// | |<-------------| |
+// | SubDelRsp | | |
+// |<-------------| | |
+// | | RouteDelete | |
+// | |---------------------------->|
+// | | | |
+// | | RouteDelete | |
+// | | status:400 | |
+// | |<----------------------------|
+// | | | |
+func TestSubDelReqAndRouteDeleteNok(t *testing.T) {
+ CaseBegin("TestSubDelReqAndRouteDeleteNok")
+
+ // Init counter check
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cSubReqFromXapp, 1},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cSubRespToXapp, 1},
+ Counter{cSubDelReqFromXapp, 1},
+ Counter{cRouteDeleteFail, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cSubDelRespToXapp, 1},
+ })
+
+ cretrans := xappConn1.SendSubsReq(t, nil, nil)
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+ e2termConn1.SendSubsResp(t, crereq, cremsg)
+ e2SubsId := xappConn1.RecvSubsResp(t, cretrans)
+
+ resp, _ := xapp.Subscription.QuerySubscriptions()
+ assert.Equal(t, resp[0].SubscriptionID, int64(e2SubsId))
+ assert.Equal(t, resp[0].Meid, "RAN_NAME_1")
+ assert.Equal(t, resp[0].ClientEndpoint, []string{"localhost:13560"})
+
+ deltrans := xappConn1.SendSubsDelReq(t, nil, e2SubsId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ waiter := rtmgrHttp.AllocNextEvent(false)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+ waiter.WaitResult(t)
+
+ xappConn1.RecvSubsDelResp(t, deltrans)
+
+ //Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsId, 10)
+
+ xappConn1.TestMsgChanEmpty(t)
+ xappConn2.TestMsgChanEmpty(t)
+ e2termConn1.TestMsgChanEmpty(t)
+ mainCtrl.wait_registry_empty(t, 10)
+
+ mainCtrl.VerifyCounterValues(t)