2 // Copyright 2020 AT&T Intellectual Property
3 // Copyright 2020 Nokia
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
17 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 // platform project (RICP).
28 "github.com/stretchr/testify/assert"
32 e2SetupReqGnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_gnb.xml"
33 e2SetupReqEnGnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_en-gNB.xml"
34 e2SetupReqEnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_enb.xml"
35 e2SetupReqNgEnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_ng-eNB.xml"
36 e2SetupReqGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb.xml"
37 e2SetupReqE1InterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_e1.xml"
38 e2SetupReqF1InterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_f1.xml"
39 e2SetupReqW1InterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_w1.xml"
40 e2SetupReqS1InterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_s1.xml"
41 e2SetupReqXngnbInterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_xngnb.xml"
42 e2SetupReqXnenbInterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_xnenb.xml"
43 e2SetupReqX2gnbInterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_x2gnb.xml"
44 e2SetupReqX2enbInterfaceGnbSetupRequestWithOIDXmlPath = "../tests/resources/setupRequest/setupRequest_with_oid_gnb_inttype_x2enb.xml"
47 func getTestE2SetupRequest(t *testing.T, reqXmlPath string) *models.E2SetupRequestMessage {
48 xmlGnb := utils.ReadXmlFile(t, reqXmlPath)
49 setupRequest := &models.E2SetupRequestMessage{}
50 err := xml.Unmarshal(utils.NormalizeXml(xmlGnb), &setupRequest.E2APPDU)
55 func TestExtractRanFunctionsListFromGnbRequestSuccess(t *testing.T) {
56 setupRequest := getTestE2SetupRequest(t, e2SetupReqGnbSetupRequestXmlPath)
58 ranFuncList := setupRequest.ExtractRanFunctionsList()
59 assert.Equal(t, uint32(1), ranFuncList[0].RanFunctionId)
60 assert.Equal(t, uint32(2), ranFuncList[1].RanFunctionId)
61 assert.Equal(t, uint32(3), ranFuncList[2].RanFunctionId)
62 assert.Equal(t, uint32(1), ranFuncList[0].RanFunctionRevision)
63 assert.Equal(t, uint32(1), ranFuncList[1].RanFunctionRevision)
64 assert.Equal(t, uint32(1), ranFuncList[2].RanFunctionRevision)
67 func TestExtractRanFunctionsListFromGnbRequestwithOidSuccess(t *testing.T) {
68 setupRequest := getTestE2SetupRequest(t, e2SetupReqGnbSetupRequestWithOIDXmlPath)
70 ranFuncList := setupRequest.ExtractRanFunctionsList()
72 assert.Equal(t, uint32(1), ranFuncList[0].RanFunctionId)
73 assert.Equal(t, uint32(2), ranFuncList[1].RanFunctionId)
74 assert.Equal(t, uint32(3), ranFuncList[2].RanFunctionId)
76 assert.Equal(t, uint32(1), ranFuncList[0].RanFunctionRevision)
77 assert.Equal(t, uint32(1), ranFuncList[1].RanFunctionRevision)
78 assert.Equal(t, uint32(1), ranFuncList[2].RanFunctionRevision)
80 assert.Equal(t, "OID123", ranFuncList[0].RanFunctionOid)
81 assert.Equal(t, "OID124", ranFuncList[1].RanFunctionOid)
82 assert.Equal(t, "OID125", ranFuncList[2].RanFunctionOid)
85 func TestExtractE2nodeConfigSuccess(t *testing.T) {
86 setupRequest := getTestE2SetupRequest(t, e2SetupReqGnbSetupRequestWithOIDXmlPath)
87 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
89 assert.Equal(t, 2, len(e2nodeConfigs))
91 assert.Equal(t, "nginterf1", e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeNG().GetAmfName())
92 assert.Equal(t, "nginterf2", e2nodeConfigs[1].GetE2NodeComponentInterfaceTypeNG().GetAmfName())
96 func TestGetPlmnIdFromGnbRequestSuccess(t *testing.T) {
97 setupRequest := getTestE2SetupRequest(t, e2SetupReqGnbSetupRequestXmlPath)
99 plmnID := setupRequest.GetPlmnId()
100 assert.Equal(t, "02F829", plmnID)
103 func TestGetPlmnIdFromEnGnbRequestSuccess(t *testing.T) {
104 setupRequest := getTestE2SetupRequest(t, e2SetupReqEnGnbSetupRequestXmlPath)
106 plmnID := setupRequest.GetPlmnId()
107 assert.Equal(t, "131014", plmnID)
110 func TestGetPlmnIdFromEnbRequestSuccess(t *testing.T) {
111 setupRequest := getTestE2SetupRequest(t, e2SetupReqEnbSetupRequestXmlPath)
113 plmnID := setupRequest.GetPlmnId()
114 assert.Equal(t, "6359AB", plmnID)
117 func TestGetPlmnIdFromNgEnbRequestSuccess(t *testing.T) {
118 setupRequest := getTestE2SetupRequest(t, e2SetupReqNgEnbSetupRequestXmlPath)
120 plmnID := setupRequest.GetPlmnId()
121 assert.Equal(t, "131014", plmnID)
124 func TestGetNbIdFromGnbRequestSuccess(t *testing.T) {
125 setupRequest := getTestE2SetupRequest(t, e2SetupReqGnbSetupRequestXmlPath)
127 nbID := setupRequest.GetNbId()
128 assert.Equal(t, "001100000011000000110000", nbID)
131 func TestGetNbIdFromEnGnbRequestSuccess(t *testing.T) {
132 setupRequest := getTestE2SetupRequest(t, e2SetupReqEnGnbSetupRequestXmlPath)
134 nbID := setupRequest.GetNbId()
135 assert.Equal(t, "11000101110001101100011111111000", nbID)
138 func TestGetNbIdFromEnbRequestSuccess(t *testing.T) {
139 setupRequest := getTestE2SetupRequest(t, e2SetupReqEnbSetupRequestXmlPath)
141 nbID := setupRequest.GetNbId()
142 assert.Equal(t, "101010101010101010", nbID)
145 func TestGetNbIdFromNgEnbRequestSuccess(t *testing.T) {
146 setupRequest := getTestE2SetupRequest(t, e2SetupReqNgEnbSetupRequestXmlPath)
148 nbID := setupRequest.GetNbId()
149 assert.Equal(t, "101010101010101010", nbID)
152 func TestExtractE2nodeIntTypeE1ConfigFail(t *testing.T) {
153 setupRequest := getTestE2SetupRequest(t, e2SetupReqE1InterfaceGnbSetupRequestWithOIDXmlPath)
154 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
156 assert.Equal(t, 2, len(e2nodeConfigs))
158 assert.NotEqual(t, 1, int(e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeE1().GetGNBCuCpId()))
159 assert.NotEqual(t, 2, int(e2nodeConfigs[1].GetE2NodeComponentInterfaceTypeE1().GetGNBCuCpId()))
163 func TestExtractE2nodeIntTypeF1ConfigFail(t *testing.T) {
164 setupRequest := getTestE2SetupRequest(t, e2SetupReqF1InterfaceGnbSetupRequestWithOIDXmlPath)
165 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
167 assert.Equal(t, 2, len(e2nodeConfigs))
169 assert.NotEqual(t, 1, int(e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeF1().GetGNBDuId()))
170 assert.NotEqual(t, 2, int(e2nodeConfigs[1].GetE2NodeComponentInterfaceTypeF1().GetGNBDuId()))
174 func TestExtractE2nodeIntTypeW1ConfigFail(t *testing.T) {
175 setupRequest := getTestE2SetupRequest(t, e2SetupReqW1InterfaceGnbSetupRequestWithOIDXmlPath)
176 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
178 assert.Equal(t, 2, len(e2nodeConfigs))
180 assert.NotEqual(t, 1, int(e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeW1().GetNgenbDuId()))
181 assert.NotEqual(t, 2, int(e2nodeConfigs[1].GetE2NodeComponentInterfaceTypeW1().GetNgenbDuId()))
185 func TestExtractE2nodeIntTypeS1ConfigFail(t *testing.T) {
186 setupRequest := getTestE2SetupRequest(t, e2SetupReqS1InterfaceGnbSetupRequestWithOIDXmlPath)
187 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
189 assert.Equal(t, 2, len(e2nodeConfigs))
191 assert.NotEqual(t, "e1interf1", e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeS1().GetMmeName())
192 assert.NotEqual(t, "e1interf2", e2nodeConfigs[1].GetE2NodeComponentInterfaceTypeS1().GetMmeName())
196 func TestExtractE2nodeIntTypeXngnbConfigFail(t *testing.T) {
197 setupRequest := getTestE2SetupRequest(t, e2SetupReqXngnbInterfaceGnbSetupRequestWithOIDXmlPath)
198 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
200 assert.Equal(t, 1, len(e2nodeConfigs))
202 assert.NotEqual(t, "101010101010101010", (e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeXn().GetGlobalGnbId().GetGnbId()))
205 func TestExtractE2nodeIntTypeXnenbConfigFail(t *testing.T) {
206 setupRequest := getTestE2SetupRequest(t, e2SetupReqXnenbInterfaceGnbSetupRequestWithOIDXmlPath)
207 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
209 assert.Equal(t, 1, len(e2nodeConfigs))
211 assert.NotEqual(t, "101010101010101010", (e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeXn().GetGlobalNgenbId().GetEnbId()))
214 func TestExtractE2nodeIntTypeX2gnbConfigFail(t *testing.T) {
215 setupRequest := getTestE2SetupRequest(t, e2SetupReqX2gnbInterfaceGnbSetupRequestWithOIDXmlPath)
216 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
218 assert.Equal(t, 1, len(e2nodeConfigs))
220 assert.NotEqual(t, "101010101010101010", (e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeX2().GetGlobalEngnbId().GetGnbId()))
223 func TestExtractE2nodeIntTypeX2enbConfigFail(t *testing.T) {
224 setupRequest := getTestE2SetupRequest(t, e2SetupReqX2enbInterfaceGnbSetupRequestWithOIDXmlPath)
225 e2nodeConfigs := setupRequest.ExtractE2NodeConfigList()
227 assert.Equal(t, 1, len(e2nodeConfigs))
229 assert.NotEqual(t, "101010101010101010", (e2nodeConfigs[0].GetE2NodeComponentInterfaceTypeX2().GetGlobalEnbId().GetEnbId()))