[RICPLT-1703] - Reset Request + unit tests
[ric-plt/e2mgr.git] / E2Manager / e2pdus / x2_reset_known_causes_test.go
1 package e2pdus
2
3 import (
4         "e2mgr/logger"
5         "fmt"
6         "strings"
7         "testing"
8 )
9
10 func TestKnownCausesToX2ResetPDU(t *testing.T) {
11         _,err := logger.InitLogger(logger.InfoLevel)
12         if err!=nil{
13                 t.Errorf("failed to initialize logger, error: %s", err)
14         }
15         var testCases = []struct {
16                 cause string
17                 packedPdu        string
18         }{
19                 {
20                         cause:     OmInterventionCause,
21                         packedPdu: "000700080000010005400164",
22                 },
23                 {
24                         cause:     "PROTOCOL:transfer-syntax-error",
25                         packedPdu: "000700080000010005400140",
26                 },
27                 {
28                         cause:     "transport:transport-RESOURCE-unavailable",
29                         packedPdu: "000700080000010005400120",
30                 },
31
32                 {
33                         cause:     "radioNetwork:invalid-MME-groupid",
34                         packedPdu: "00070009000001000540020680",
35                 },
36
37         }
38
39         for _, tc := range testCases {
40                 t.Run(tc.packedPdu, func(t *testing.T) {
41
42                         payload, ok := KnownCausesToX2ResetPDU(tc.cause)
43                         if !ok {
44                                 t.Errorf("want: success, got: not found.\n")
45                         } else {
46                                 tmp := fmt.Sprintf("%x", payload)
47                                 if len(tmp) != len(tc.packedPdu) {
48                                         t.Errorf("want packed len:%d, got: %d\n", len(tc.packedPdu)/2, len(payload)/2)
49                                 }
50
51                                 if strings.Compare(tmp, tc.packedPdu) != 0 {
52                                         t.Errorf("\nwant :\t[%s]\n got: \t\t[%s]\n", tc.packedPdu, tmp)
53                                 }
54                         }
55                 })
56         }
57 }
58
59
60 func TestKnownCausesToX2ResetPDUFailure(t *testing.T) {
61         _, err := logger.InitLogger(logger.InfoLevel)
62         if err != nil {
63                 t.Errorf("failed to initialize logger, error: %s", err)
64         }
65
66         _, ok  := KnownCausesToX2ResetPDU("xxxx")
67         if ok {
68                 t.Errorf("want: not found, got: success.\n")
69         }
70 }
71
72
73 func TestPrepareX2ResetPDUsFailure(t *testing.T) {
74         _, err := logger.InitLogger(logger.InfoLevel)
75         if err != nil {
76                 t.Errorf("failed to initialize logger, error: %s", err)
77         }
78
79         err  = prepareX2ResetPDUs(1, 4096)
80         if err == nil {
81                 t.Errorf("want: error, got: success.\n")
82         }
83
84         expected:= "#reset_request_handler.Handle - failed to build and pack the reset message #src/asn1codec_utils.c.pack_pdu_aux - Encoded output of E2AP-PDU, is too big:"
85         if !strings.Contains(err.Error(), expected) {
86                 t.Errorf("want :[%s], got: [%s]\n", expected, err)
87         }
88 }