2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 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).
20 package rmrmsghandlers
31 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
32 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
33 "github.com/stretchr/testify/assert"
34 "github.com/stretchr/testify/mock"
41 prefix = "10.0.2.15:9999|"
42 e2tInstanceFullAddress = "10.0.2.15:9999"
43 nodebRanName = "gnb:310-410-b5c67788"
44 GnbSetupRequestXmlPath = "../../tests/resources/setupRequest_gnb.xml"
45 EnGnbSetupRequestXmlPath = "../../tests/resources/setupRequest_en-gNB.xml"
46 NgEnbSetupRequestXmlPath = "../../tests/resources/setupRequest_ng-eNB.xml"
47 EnbSetupRequestXmlPath = "../../tests/resources/setupRequest_enb.xml"
50 func readXmlFile(t *testing.T, xmlPath string) []byte {
51 path, err := filepath.Abs(xmlPath)
55 xmlAsBytes, err := ioutil.ReadFile(path)
63 func TestParseGnbSetupRequest_Success(t *testing.T) {
64 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
65 handler, _, _, _, _, _ := initMocks(t)
66 prefBytes := []byte(prefix)
67 request, _, err := handler.parseSetupRequest(append(prefBytes, xmlGnb...))
68 assert.Equal(t, "02F829", request.GetPlmnId())
69 assert.Equal(t, "001100000011000000110000", request.GetNbId())
73 func TestParseEnGnbSetupRequest_Success(t *testing.T) {
74 enGnbXml := readXmlFile(t, EnGnbSetupRequestXmlPath)
75 handler, _, _, _, _, _ := initMocks(t)
76 prefBytes := []byte(prefix)
77 request, _, err := handler.parseSetupRequest(append(prefBytes, enGnbXml...))
78 assert.Equal(t, "131014", request.GetPlmnId())
79 assert.Equal(t, "11000101110001101100011111111000", request.GetNbId())
83 func TestParseNgEnbSetupRequest_Success(t *testing.T) {
84 ngEnbXml := readXmlFile(t, NgEnbSetupRequestXmlPath)
85 handler, _, _, _, _, _ := initMocks(t)
86 prefBytes := []byte(prefix)
87 request, _, err := handler.parseSetupRequest(append(prefBytes, ngEnbXml...))
88 assert.Equal(t, "131014", request.GetPlmnId())
89 assert.Equal(t, "101010101010101010", request.GetNbId())
93 func TestParseEnbSetupRequest_Success(t *testing.T) {
94 enbXml := readXmlFile(t, EnbSetupRequestXmlPath)
95 handler, _, _, _, _, _ := initMocks(t)
96 prefBytes := []byte(prefix)
97 request, _, err := handler.parseSetupRequest(append(prefBytes, enbXml...))
98 assert.Equal(t, "6359AB", request.GetPlmnId())
99 assert.Equal(t, "101010101010101010", request.GetNbId())
103 func TestParseSetupRequest_PipFailure(t *testing.T) {
104 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
105 handler, _, _, _, _, _ := initMocks(t)
106 prefBytes := []byte("10.0.2.15:9999")
107 request, _, err := handler.parseSetupRequest(append(prefBytes, xmlGnb...))
108 assert.Nil(t, request)
109 assert.NotNil(t, err)
110 assert.EqualError(t, err, "#E2SetupRequestNotificationHandler.parseSetupRequest - Error parsing E2 Setup Request failed extract Payload: no | separator found")
113 func TestParseSetupRequest_UnmarshalFailure(t *testing.T) {
114 handler, _, _, _, _, _ := initMocks(t)
115 prefBytes := []byte(prefix)
116 request, _, err := handler.parseSetupRequest(append(prefBytes, 1, 2, 3))
117 assert.Nil(t, request)
118 assert.NotNil(t, err)
119 assert.EqualError(t, err, "#E2SetupRequestNotificationHandler.parseSetupRequest - Error unmarshalling E2 Setup Request payload: 31302e302e322e31353a393939397c010203")
122 func TestE2SetupRequestNotificationHandler_HandleNewGnbSuccess(t *testing.T) {
123 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
124 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
125 var e2tInstance = &entities.E2TInstance{}
126 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
127 var gnb *entities.NodebInfo
128 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
129 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append([]byte(prefix), xmlGnb...)}
130 setupRequest, e2tIpAddress, _ := handler.parseSetupRequest(notificationRequest.Payload)
131 nodebInfo, _ := handler.buildNodebInfo(nodebRanName, e2tIpAddress, setupRequest)
132 writerMock.On("SaveNodeb", mock.Anything, nodebInfo).Return(nil)
133 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
134 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
135 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
137 rmrMessage := &rmrCgo.MBuf{}
138 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
139 handler.Handle(notificationRequest)
140 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, nodebInfo)
141 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
144 func TestE2SetupRequestNotificationHandler_HandleNewEnGnbSuccess(t *testing.T) {
145 xmlEnGnb := readXmlFile(t, EnGnbSetupRequestXmlPath)
146 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
147 var e2tInstance = &entities.E2TInstance{}
148 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
149 var gnb *entities.NodebInfo
150 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
151 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
152 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
153 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
154 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
156 rmrMessage := &rmrCgo.MBuf{}
157 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
158 prefBytes := []byte(prefix)
159 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
160 handler.Handle(notificationRequest)
161 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
164 func TestE2SetupRequestNotificationHandler_HandleNewNgEnbSuccess(t *testing.T) {
165 xmlNgEnb := readXmlFile(t, NgEnbSetupRequestXmlPath)
166 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
167 var e2tInstance = &entities.E2TInstance{}
168 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
169 var gnb *entities.NodebInfo
170 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
171 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
172 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
173 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
174 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
176 rmrMessage := &rmrCgo.MBuf{}
177 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
178 prefBytes := []byte(prefix)
179 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlNgEnb...)}
180 handler.Handle(notificationRequest)
181 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
184 func TestE2SetupRequestNotificationHandler_HandleExistingGnbSuccess(t *testing.T) {
185 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
187 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
188 var e2tInstance = &entities.E2TInstance{}
189 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
190 var gnb = &entities.NodebInfo{
191 RanName: nodebRanName,
192 AssociatedE2TInstanceAddress: e2tInstanceFullAddress,
193 ConnectionStatus: entities.ConnectionStatus_CONNECTED,
194 NodeType: entities.Node_GNB,
195 Configuration: &entities.NodebInfo_Gnb{Gnb: &entities.Gnb{}},
197 readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
198 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
200 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append([]byte(prefix), xmlGnb...)}
201 setupRequest, _, _ := handler.parseSetupRequest(notificationRequest.Payload)
202 _ = handler.setGnbFunctions(gnb, setupRequest)
204 writerMock.On("UpdateNodebInfo", gnb).Return(nil)
205 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
207 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(&rmrCgo.MBuf{}, errEmpty)
208 handler.Handle(notificationRequest)
209 writerMock.AssertCalled(t, "UpdateNodebInfo", gnb)
210 assertExistingNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
213 func TestE2SetupRequestNotificationHandler_HandleParseError(t *testing.T) {
214 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
216 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
217 prefBytes := []byte("invalid_prefix")
218 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
219 handler.Handle(notificationRequest)
220 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
221 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
222 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
223 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
224 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
225 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
228 func TestE2SetupRequestNotificationHandler_HandleUnmarshalError(t *testing.T) {
229 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
230 prefBytes := []byte(prefix)
231 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, "xmlGnb"...)}
232 handler.Handle(notificationRequest)
233 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
234 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
235 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
236 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
237 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
238 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
241 func TestE2SetupRequestNotificationHandler_HandleGetE2TInstanceError(t *testing.T) {
242 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
243 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
244 var e2tInstance *entities.E2TInstance
245 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, common.NewResourceNotFoundError("Not found"))
246 prefBytes := []byte(prefix)
247 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
248 handler.Handle(notificationRequest)
249 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
250 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
251 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
252 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
253 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
254 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
255 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
258 func TestE2SetupRequestNotificationHandler_HandleGetNodebError(t *testing.T) {
259 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
261 handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
262 var e2tInstance = &entities.E2TInstance{}
263 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
264 var gnb *entities.NodebInfo
265 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewInternalError(errors.New("some error")))
266 prefBytes := []byte(prefix)
267 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
268 handler.Handle(notificationRequest)
269 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
270 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
271 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
272 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
273 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
274 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
275 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
278 func TestE2SetupRequestNotificationHandler_HandleAssociationError(t *testing.T) {
279 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
281 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
282 var e2tInstance = &entities.E2TInstance{}
283 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
284 var gnb *entities.NodebInfo
285 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
286 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
287 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
288 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
289 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(errors.New("association error"))
291 rmrMessage := &rmrCgo.MBuf{}
292 rmrMessengerMock.On("WhSendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
294 prefBytes := []byte(prefix)
295 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
296 handler.Handle(notificationRequest)
297 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
298 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
299 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
300 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
301 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
302 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
303 rmrMessengerMock.AssertCalled(t, "WhSendMsg", mock.Anything, mock.Anything)
306 func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing.T) {
307 xmlEnGnb := readXmlFile(t, EnGnbSetupRequestXmlPath)
308 logger := tests.InitLog(t)
309 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
313 }{Mcc: "327", Mnc: "94" ,RicId: "10011001101010101011"}}
314 rmrMessengerMock := &mocks.RmrMessengerMock{}
315 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
316 readerMock := &mocks.RnibReaderMock{}
317 writerMock := &mocks.RnibWriterMock{}
318 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
319 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
320 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
321 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
322 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
324 var e2tInstance = &entities.E2TInstance{}
325 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
326 var gnb *entities.NodebInfo
327 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
328 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
329 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
330 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
331 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
333 rmrMessage := &rmrCgo.MBuf{}
334 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
335 prefBytes := []byte(prefix)
336 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
337 handler.Handle(notificationRequest)
338 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
339 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
340 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
341 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
342 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
343 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
344 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
347 func TestE2SetupRequestNotificationHandler_HandleExistingGnbInvalidStatusError(t *testing.T) {
348 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
349 handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
350 var gnb = &entities.NodebInfo{RanName: nodebRanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
351 readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
352 var e2tInstance = &entities.E2TInstance{}
353 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
354 prefBytes := []byte(prefix)
355 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
356 handler.Handle(notificationRequest)
357 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
358 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
359 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
360 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
361 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
362 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
363 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
366 func initMocks(t *testing.T) (E2SetupRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock, *mocks.RoutingManagerClientMock) {
367 logger := tests.InitLog(t)
368 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
372 }{Mcc: "327", Mnc: "94" ,RicId: "AACCE"}}
373 rmrMessengerMock := &mocks.RmrMessengerMock{}
374 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
375 readerMock := &mocks.RnibReaderMock{}
376 writerMock := &mocks.RnibWriterMock{}
377 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
378 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
379 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
380 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
381 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
382 return handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock
385 func assertNewNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
386 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
387 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
388 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
389 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
390 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
391 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
392 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)
395 func assertExistingNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
396 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
397 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
398 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
399 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
400 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
401 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
402 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)