X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fxapp%2Fsubscription_test.go;h=d1ea66f077ff749eb65a929d77abff2dea846e2f;hb=refs%2Ftags%2Fv0.4.7;hp=b9713afdb3f36f22f22676f96a4ac1689a9b2804;hpb=b6341a5002c90da3d531a710f1038d716ef8c9bc;p=ric-plt%2Fxapp-frame.git diff --git a/pkg/xapp/subscription_test.go b/pkg/xapp/subscription_test.go index b9713af..d1ea66f 100755 --- a/pkg/xapp/subscription_test.go +++ b/pkg/xapp/subscription_test.go @@ -7,28 +7,29 @@ package xapp import ( - apimodel "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/clientmodel" + "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/clientmodel" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/models" "github.com/stretchr/testify/assert" "testing" "time" + "fmt" ) var suite *testing.T var meid = "gnb123456" var funId = int64(1) -var clientEndpoint = "localhost:4561" +var clientEndpoint = "localhost:4560" var direction = int64(0) var procedureCode = int64(27) var typeOfMessage = int64(1) -var reportParams = apimodel.ReportParams{ - Meid: meid, - RANFunctionID: &funId, +var reportParams = clientmodel.ReportParams{ + Meid: meid, + RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, - EventTriggers: apimodel.EventTriggerList{ - &apimodel.EventTrigger{ + EventTriggers: clientmodel.EventTriggerList{ + &clientmodel.EventTrigger{ InterfaceDirection: direction, ProcedureCode: procedureCode, TypeOfMessage: typeOfMessage, @@ -36,18 +37,34 @@ var reportParams = apimodel.ReportParams{ }, } -var policyParams = apimodel.PolicyParams{ - Meid: &meid, - RANFunctionID: &funId, +var policyParams = clientmodel.PolicyParams{ + Meid: &meid, + RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, - EventTriggers: apimodel.EventTriggerList{ - &apimodel.EventTrigger{ + EventTriggers: clientmodel.EventTriggerList{ + &clientmodel.EventTrigger{ InterfaceDirection: direction, ProcedureCode: procedureCode, TypeOfMessage: typeOfMessage, }, }, - PolicyActionDefinitions: &apimodel.PolicyActionDefinition{}, + PolicyActionDefinitions: &clientmodel.PolicyActionDefinition{}, +} + +func processSubscriptions(subscriptionId string) { + // Generate requestorId, instanceId + reqId := int64(11) + instanceId := int64(22) + + resp := &models.SubscriptionResponse{ + SubscriptionID: &subscriptionId, + SubscriptionInstances: []*models.SubscriptionInstance{ + &models.SubscriptionInstance{RequestorID: &reqId, InstanceID: &instanceId}, + }, + } + + // Notify the client: don't worry about errors ... Notify() will handle retries, etc. + Subscription.Notify(resp, clientEndpoint) } func subscriptionHandler(stype models.SubscriptionType, params interface{}) (*models.SubscriptionResponse, error) { @@ -65,15 +82,15 @@ func subscriptionHandler(stype models.SubscriptionType, params interface{}) (*mo assert.Equal(suite, clientEndpoint, *p.ClientEndpoint) } - subId := "xapp-11" - reqId := int64(11) - instanceId := int64(22) + // Generate a unique subscriptionId + subscriptionId := fmt.Sprintf("%s-%s", meid, clientEndpoint) + + // Process subscriptions on the background + go processSubscriptions(subscriptionId) + + // and send response immediately return &models.SubscriptionResponse{ - SubscriptionID: &subId, - SubscriptionInstances: []*models.SubscriptionInstance{ - &models.SubscriptionInstance{RequestorID: &reqId, InstanceID: &instanceId}, - &models.SubscriptionInstance{RequestorID: &reqId, InstanceID: &instanceId}, - }, + SubscriptionID: &subscriptionId, }, nil } @@ -113,27 +130,29 @@ func TestSubscriptionQueryHandling(t *testing.T) { } func TestSubscriptionReportHandling(t *testing.T) { - resp, err := Subscription.SubscribeReport(&reportParams) + Subscription.SetResponseCB(func(resp *clientmodel.SubscriptionResponse) { + assert.Equal(t, len(resp.SubscriptionInstances), 1) + assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) + }) + _, err := Subscription.SubscribeReport(&reportParams) assert.Equal(t, err, nil) - assert.Equal(t, len(resp.SubscriptionInstances), 2) - assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) - assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) - assert.Equal(t, *resp.SubscriptionInstances[1].RequestorID, int64(11)) - assert.Equal(t, *resp.SubscriptionInstances[1].InstanceID, int64(22)) } func TestSubscriptionPolicytHandling(t *testing.T) { - resp, err := Subscription.SubscribePolicy(&policyParams) + Subscription.SetResponseCB(func(resp *clientmodel.SubscriptionResponse) { + assert.Equal(t, len(resp.SubscriptionInstances), 1) + assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) + }) + _, err := Subscription.SubscribePolicy(&policyParams) assert.Equal(t, err, nil) - assert.Equal(t, len(resp.SubscriptionInstances), 2) - assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) - assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) } func TestSubscriptionDeleteHandling(t *testing.T) { err := Subscription.UnSubscribe(clientEndpoint) assert.Equal(t, err, nil) -} \ No newline at end of file +}