Added Test Cases to improve subscription.go coverity coverage 09/6109/1
authorKonstantinos Archangelof <konstantinos.archangelof@nokia.com>
Fri, 21 May 2021 09:36:45 +0000 (09:36 +0000)
committerKonstantinos Archangelof <konstantinos.archangelof@nokia.com>
Fri, 21 May 2021 09:57:03 +0000 (09:57 +0000)
Change-Id: Ic81889c411dcc770534342097f40e9fd44b6c010
Signed-off-by: Konstantinos Archangelof <konstantinos.archangelof@nokia.com>
pkg/control/subscription.go
pkg/control/ut_messaging_test.go
pkg/teststube2ap/stubE2.go

index ec6f67a..6ea2c1f 100644 (file)
@@ -79,10 +79,7 @@ func (s *Subscription) GetReqId() *RequestId {
 func (s *Subscription) GetMeid() *xapp.RMRMeid {
        s.mutex.Lock()
        defer s.mutex.Unlock()
-       if s.Meid != nil {
-               return s.Meid
-       }
-       return nil
+       return s.Meid
 }
 
 func (s *Subscription) GetTransaction() TransactionIf {
index b91b4b8..891437f 100644 (file)
@@ -4509,6 +4509,373 @@ func TestRESTFullAmountReportSubReqAndSubDelOk(t *testing.T) {
        mainCtrl.VerifyCounterValues(t)
 }
 */
+
+func TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+       eventTriggerDefinition := "1234"
+       params.SetSubEventTriggerDefinition(eventTriggerDefinition)
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqReportSameActionDiffActionListLen(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffActionListLen")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+
+       actionId := int64(1)
+       actionType := "report"
+       actionDefinition := "56781"
+       subsequestActionType := "continue"
+       timeToWait := "w10ms"
+       params.AppendActionToActionToBeSetupList(actionId, actionType, actionDefinition, subsequestActionType, timeToWait)
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqReportSameActionDiffActionID(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffActionID")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+       params.SetSubActionIDs(int64(2))
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqDiffActionType(t *testing.T) {
+       CaseBegin("TestRESTSubReqDiffActionType")
+
+       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},
+       })
+
+       // Req1
+       params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqPolicyAndSubDelOkSameAction(t *testing.T) {
+       CaseBegin("TestRESTSubReqPolicyAndSubDelOkSameAction")
+
+       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},
+       })
+
+       // Req1
+       params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount)
+       params.SetMeid("RAN_NAME_1")
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqReportSameActionDiffActionDefinitionLen(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionLen")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+       actionDefinition := "5678"
+       params.SetSubActionDefinition(actionDefinition)
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqReportSameActionDiffActionDefinitionContents(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionContents")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+       actionDefinition := "56782"
+       params.SetSubActionDefinition(actionDefinition)
+
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubReqReportSameActionDiffSubsAction(t *testing.T) {
+       CaseBegin("TestRESTSubReqReportSameActionDiffSubsAction")
+
+       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},
+       })
+
+       // Req1
+       var params *teststube2ap.RESTSubsReqParams = nil
+
+       //Subs Create
+       restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+
+       queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
+
+       // Req2
+       params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount)
+       params.SetMeid("RAN_NAME_1")
+       params.SetTimeToWait("w200ms")
+       restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+       xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+       crereq, cremsg := e2termConn1.RecvSubsReq(t)
+       xappConn2.ExpectRESTNotification(t, restSubId2)
+       e2termConn1.SendSubsResp(t, crereq, cremsg)
+       e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
+
+       deleteXapp1Subscription(t, &restSubId1)
+       deleteXapp2Subscription(t, &restSubId2)
+
+       waitSubsCleanup(t, e2SubsId1, 10)
+       waitSubsCleanup(t, e2SubsId2, 10)
+
+       mainCtrl.VerifyCounterValues(t)
+
+}
+
 ////////////////////////////////////////////////////////////////////////////////////
 //   Services for UT cases
 ////////////////////////////////////////////////////////////////////////////////////
index 4c8c08d..5604393 100644 (file)
@@ -908,6 +908,58 @@ func (p *RESTSubsReqParams) SetSubActionTypes(actionType string) {
        }
 }
 
+func (p *RESTSubsReqParams) SetSubActionIDs(actionId int64) {
+
+       for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
+               for _, action := range subDetail.ActionToBeSetupList {
+                       if action != nil {
+                               action.ActionID = &actionId
+                       }
+               }
+       }
+}
+
+func (p *RESTSubsReqParams) SetSubActionDefinition(actionDefinition string) {
+
+       for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
+               for _, action := range subDetail.ActionToBeSetupList {
+                       if action != nil {
+                               action.ActionDefinition.OctetString = actionDefinition
+                       }
+               }
+       }
+}
+
+func (p *RESTSubsReqParams) SetSubEventTriggerDefinition(eventTriggerDefinition string) {
+
+       for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
+               if subDetail != nil {
+                       subDetail.EventTriggers.OctetString = eventTriggerDefinition
+               }
+       }
+}
+
+func (p *RESTSubsReqParams) AppendActionToActionToBeSetupList(actionId int64, actionType string, actionDefinition string, subsequentActionType string, timeToWait string) {
+
+       actionToBeSetup := &clientmodel.ActionToBeSetup{
+               ActionID:   &actionId,
+               ActionType: &actionType,
+               ActionDefinition: &clientmodel.ActionDefinition{
+                       OctetString: actionDefinition,
+               },
+               SubsequentAction: &clientmodel.SubsequentAction{
+                       SubsequentActionType: &subsequentActionType,
+                       TimeToWait:           &timeToWait,
+               },
+       }
+
+       for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
+               if subDetail != nil {
+                       subDetail.ActionToBeSetupList = append(subDetail.ActionToBeSetupList, actionToBeSetup)
+               }
+       }
+}
+
 func (p *RESTSubsReqParams) SetRMREndpoint(RMR_port int64, host string) {
 
        p.SubsReqParams.ClientEndpoint.RMRPort = &RMR_port