blob: a685a81944826311d61cef18691be264b34d7eaf [file] [log] [blame]
/*
==================================================================================
Copyright (c) 2019 Nokia
==================================================================================
*/
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/models"
"github.com/stretchr/testify/assert"
"testing"
"time"
)
var suite *testing.T
var requestorId = int64(0x4EEC)
var direction = int64(0)
var procedureCode = int64(27)
var typeOfMessage = int64(1)
var reportParams = apimodel.ReportParams{
RequestorID: &requestorId,
EventTriggers: apimodel.EventTriggerList{
&apimodel.EventTrigger{
InterfaceDirection: &direction,
ProcedureCode: &procedureCode,
TypeOfMessage: &typeOfMessage,
},
},
}
var controlParams = apimodel.ControlParams{
RequestorID: requestorId,
}
var policyParams = apimodel.PolicyParams{
RequestorID: requestorId,
}
func subscriptionHandler(stype models.SubscriptionType, params interface{}) (models.SubscriptionResult, error) {
switch stype {
case models.SubscriptionTypeReport:
p := params.(*models.ReportParams)
assert.Equal(suite, requestorId, *p.RequestorID)
assert.Equal(suite, direction, *p.EventTriggers[0].InterfaceDirection)
assert.Equal(suite, procedureCode, *p.EventTriggers[0].ProcedureCode)
assert.Equal(suite, typeOfMessage, *p.EventTriggers[0].TypeOfMessage)
case models.SubscriptionTypeControl:
p := params.(*models.ControlParams)
assert.Equal(suite, requestorId, p.RequestorID)
case models.SubscriptionTypePolicy:
p := params.(*models.PolicyParams)
assert.Equal(suite, requestorId, p.RequestorID)
}
return models.SubscriptionResult{11, 22, 33}, nil
}
func queryHandler() (models.SubscriptionList, error) {
resp := models.SubscriptionList{
&models.SubscriptionData{
SubscriptionID: 11,
Meid: "Test-Gnb",
Endpoint: []string{"127.0.0.1:4056"},
},
}
return resp, nil
}
func TestSetup(t *testing.T) {
suite = t
// Start the server to simulate SubManager
go Subscription.Listen(subscriptionHandler, queryHandler)
time.Sleep(time.Duration(2) * time.Second)
}
func TestSubscriptionQueryHandling(t *testing.T) {
resp, err := Subscription.QuerySubscriptions()
assert.Equal(t, err, nil)
assert.Equal(t, resp[0].SubscriptionID, int64(11))
assert.Equal(t, resp[0].Meid, "Test-Gnb")
assert.Equal(t, resp[0].Endpoint, []string{"127.0.0.1:4056"})
}
func TestSubscriptionReportHandling(t *testing.T) {
result, err := Subscription.SubscribeReport(&reportParams)
assert.Equal(t, err, nil)
assert.Equal(t, len(result), 3)
assert.Equal(t, result[0], int64(11))
assert.Equal(t, result[1], int64(22))
assert.Equal(t, result[2], int64(33))
}
func TestSubscriptionControltHandling(t *testing.T) {
result, err := Subscription.SubscribeControl(&controlParams)
assert.Equal(t, err, nil)
assert.Equal(t, len(result), 3)
assert.Equal(t, result[0], int64(11))
}
func TestSubscriptionPolicytHandling(t *testing.T) {
result, err := Subscription.SubscribePolicy(&policyParams)
assert.Equal(t, err, nil)
assert.Equal(t, len(result), 3)
assert.Equal(t, result[0], int64(11))
}