-var suite *testing.T
-
-var meid = "gnb123456"
-var funId = int64(1)
-var clientEndpoint = "localhost:4560"
-var direction = int64(0)
-var procedureCode = int64(27)
-var typeOfMessage = int64(1)
-
-var reportParams = clientmodel.ReportParams{
- Meid: meid,
- RANFunctionID: &funId,
- ClientEndpoint: &clientEndpoint,
- EventTriggers: clientmodel.EventTriggerList{
- &clientmodel.EventTrigger{
- InterfaceDirection: direction,
- ProcedureCode: procedureCode,
- TypeOfMessage: typeOfMessage,
+var (
+ suite *testing.T
+
+ meid = "gnb123456"
+ xappEventInstanceId = int64(1)
+ eventInstanceId = int64(1)
+ funId = int64(1)
+ actionId = int64(1)
+ actionType = "report"
+ subsequestActioType = "continue"
+ timeToWait = "w10ms"
+ direction = int64(0)
+ procedureCode = int64(27)
+ typeOfMessage = int64(1)
+ subscriptionId = ""
+ hPort = int64(8080)
+ rPort = int64(4560)
+ clientEndpoint = clientmodel.SubscriptionParamsClientEndpoint{Host: "localhost", HTTPPort: &hPort, RMRPort: &rPort}
+)
+
+// Test cases
+func TestSetup(t *testing.T) {
+ suite = t
+
+ // Start the server to simulate SubManager
+ go Subscription.Listen(subscriptionHandler, queryHandler, deleteHandler)
+ 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].ClientEndpoint, []string{"127.0.0.1:4056"})
+}
+
+func TestSubscriptionHandling(t *testing.T) {
+ subscriptionParams := clientmodel.SubscriptionParams{
+ SubscriptionID: "",
+ Meid: &meid,
+ RANFunctionID: &funId,
+ ClientEndpoint: &clientEndpoint,
+ SubscriptionDetails: clientmodel.SubscriptionDetailsList{
+ &clientmodel.SubscriptionDetail{
+ 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{5, 6, 7, 8},
+ SubsequentAction: &clientmodel.SubsequentAction{
+ SubsequentActionType: &subsequestActioType,
+ TimeToWait: &timeToWait,
+ },
+ },
+ },
+ },