X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fxapp%2Fsubscription_test.go;h=af8938cde9d3c16291348bb9bee2364b177000c6;hb=refs%2Fchanges%2F40%2F6340%2F1;hp=39a5d93048feec6c5ebe7adbb9362b8626c4a950;hpb=c79bd0e1a4fe855b06c8f8131f162d0ee4a5f9f5;p=ric-plt%2Fxapp-frame.git diff --git a/pkg/xapp/subscription_test.go b/pkg/xapp/subscription_test.go index 39a5d93..af8938c 100755 --- a/pkg/xapp/subscription_test.go +++ b/pkg/xapp/subscription_test.go @@ -7,20 +7,24 @@ package xapp import ( + "bytes" "fmt" + "net/http" + "net/http/httptest" + "testing" + "time" + "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" ) var ( suite *testing.T meid = "gnb123456" - reqId = int64(1) - seqId = int64(1) + xappEventInstanceId = int64(1) + eventInstanceId = int64(1) funId = int64(1) actionId = int64(1) actionType = "report" @@ -55,23 +59,19 @@ func TestSubscriptionQueryHandling(t *testing.T) { func TestSubscriptionHandling(t *testing.T) { subscriptionParams := clientmodel.SubscriptionParams{ + SubscriptionID: "", Meid: &meid, RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, SubscriptionDetails: clientmodel.SubscriptionDetailsList{ &clientmodel.SubscriptionDetail{ - RequestorID: &reqId, - InstanceID: &seqId, - EventTriggers: &clientmodel.EventTriggerDefinition{ - OctetString: "1234", - }, + XappEventInstanceID: &eventInstanceId, + EventTriggers: clientmodel.EventTriggerDefinition{00, 0x11, 0x12, 0x13, 0x00, 0x21, 0x22, 0x24, 0x1B, 0x80}, ActionToBeSetupList: clientmodel.ActionsToBeSetup{ &clientmodel.ActionToBeSetup{ - ActionID: &actionId, - ActionType: &actionType, - ActionDefinition: &clientmodel.ActionDefinition{ - OctetString: "5678", - }, + ActionID: &actionId, + ActionType: &actionType, + ActionDefinition: clientmodel.ActionDefinition{5, 6, 7, 8}, SubsequentAction: &clientmodel.SubsequentAction{ SubsequentActionType: &subsequestActioType, TimeToWait: &timeToWait, @@ -84,8 +84,8 @@ func TestSubscriptionHandling(t *testing.T) { 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)) + assert.Equal(t, *resp.SubscriptionInstances[0].XappEventInstanceID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].E2EventInstanceID, int64(22)) }) _, err := Subscription.Subscribe(&subscriptionParams) @@ -94,24 +94,19 @@ func TestSubscriptionHandling(t *testing.T) { func TestSubscriptionWithClientProvidedIdHandling(t *testing.T) { subscriptionParams := clientmodel.SubscriptionParams{ + SubscriptionID: "myxapp", Meid: &meid, RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, - SubscriptionID: "myxapp", SubscriptionDetails: clientmodel.SubscriptionDetailsList{ &clientmodel.SubscriptionDetail{ - RequestorID: &reqId, - InstanceID: &seqId, - EventTriggers: &clientmodel.EventTriggerDefinition{ - OctetString: "1234", - }, + XappEventInstanceID: &eventInstanceId, + EventTriggers: clientmodel.EventTriggerDefinition{00, 0x11, 0x12, 0x13, 0x00, 0x21, 0x22, 0x24, 0x1B, 0x80}, ActionToBeSetupList: clientmodel.ActionsToBeSetup{ &clientmodel.ActionToBeSetup{ - ActionID: &actionId, - ActionType: &actionType, - ActionDefinition: &clientmodel.ActionDefinition{ - OctetString: "5678", - }, + ActionID: &actionId, + ActionType: &actionType, + ActionDefinition: clientmodel.ActionDefinition{5, 6, 7, 8}, SubsequentAction: &clientmodel.SubsequentAction{ SubsequentActionType: &subsequestActioType, TimeToWait: &timeToWait, @@ -124,8 +119,8 @@ func TestSubscriptionWithClientProvidedIdHandling(t *testing.T) { 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)) + assert.Equal(t, *resp.SubscriptionInstances[0].XappEventInstanceID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].E2EventInstanceID, int64(22)) }) _, err := Subscription.Subscribe(&subscriptionParams) @@ -138,18 +133,40 @@ func TestSubscriptionDeleteHandling(t *testing.T) { assert.Equal(t, err, nil) } +func TestResponseHandler(t *testing.T) { + Subscription.SetResponseCB(SubscriptionRespHandler) + + payload := []byte(`{"SubscriptionInstances":[{"tXappEventInstanceID": 1}]`) + req, err := http.NewRequest("POST", "/ric/v1/subscriptions/response", bytes.NewBuffer(payload)) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + handler := http.HandlerFunc(Subscription.ResponseHandler) + handler.ServeHTTP(rr, req) + + if status := rr.Code; status != http.StatusOK { + t.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK) + } + time.Sleep(time.Duration(2) * time.Second) +} + // Helper functions +func SubscriptionRespHandler(resp *clientmodel.SubscriptionResponse) { +} + func processSubscriptions(subscriptionId string) { // Generate requestorId, instanceId - reqId := int64(11) - instanceId := int64(22) + xappInstanceId := int64(11) + e2InstanceId := int64(22) resp := &models.SubscriptionResponse{ SubscriptionID: &subscriptionId, SubscriptionInstances: []*models.SubscriptionInstance{ { - RequestorID: &reqId, - InstanceID: &instanceId, + XappEventInstanceID: &xappInstanceId, + E2EventInstanceID: &e2InstanceId, }, }, } @@ -167,15 +184,15 @@ func subscriptionHandler(params interface{}) (*models.SubscriptionResponse, erro assert.Equal(suite, clientEndpoint.HTTPPort, p.ClientEndpoint.HTTPPort) assert.Equal(suite, clientEndpoint.RMRPort, p.ClientEndpoint.RMRPort) - assert.Equal(suite, reqId, *p.SubscriptionDetails[0].RequestorID) - assert.Equal(suite, seqId, *p.SubscriptionDetails[0].InstanceID) - assert.Equal(suite, "1234", p.SubscriptionDetails[0].EventTriggers.OctetString) + assert.Equal(suite, xappEventInstanceId, *p.SubscriptionDetails[0].XappEventInstanceID) + et := []int64{00, 0x11, 0x12, 0x13, 0x00, 0x21, 0x22, 0x24, 0x1B, 0x80} + assert.ElementsMatch(suite, et, p.SubscriptionDetails[0].EventTriggers) assert.Equal(suite, actionId, *p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionID) assert.Equal(suite, actionType, *p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionType) assert.Equal(suite, subsequestActioType, *p.SubscriptionDetails[0].ActionToBeSetupList[0].SubsequentAction.SubsequentActionType) assert.Equal(suite, timeToWait, *p.SubscriptionDetails[0].ActionToBeSetupList[0].SubsequentAction.TimeToWait) - assert.Equal(suite, "5678", p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionDefinition.OctetString) + assert.ElementsMatch(suite, []int64{5, 6, 7, 8}, p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionDefinition) // Generate a unique subscriptionId subscriptionId = fmt.Sprintf("%s-%s", meid, clientEndpoint.Host)