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 {
312 }{PlmnId: "131014", RicNearRtId: "10011001101010101011"}}
313 rmrMessengerMock := &mocks.RmrMessengerMock{}
314 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
315 readerMock := &mocks.RnibReaderMock{}
316 writerMock := &mocks.RnibWriterMock{}
317 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
318 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
319 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
320 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
321 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
323 var e2tInstance = &entities.E2TInstance{}
324 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
325 var gnb *entities.NodebInfo
326 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
327 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
328 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
329 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
330 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
332 rmrMessage := &rmrCgo.MBuf{}
333 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
334 prefBytes := []byte(prefix)
335 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
336 handler.Handle(notificationRequest)
337 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
338 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
339 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
340 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
341 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
342 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
343 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
346 func TestE2SetupRequestNotificationHandler_HandleExistingGnbInvalidStatusError(t *testing.T) {
347 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
348 handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
349 var gnb = &entities.NodebInfo{RanName: nodebRanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
350 readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
351 var e2tInstance = &entities.E2TInstance{}
352 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
353 prefBytes := []byte(prefix)
354 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
355 handler.Handle(notificationRequest)
356 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
357 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
358 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
359 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
360 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
361 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
362 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
365 func initMocks(t *testing.T) (E2SetupRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock, *mocks.RoutingManagerClientMock) {
366 logger := tests.InitLog(t)
367 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
370 }{PlmnId: "131014", RicNearRtId: "556670"}}
371 rmrMessengerMock := &mocks.RmrMessengerMock{}
372 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
373 readerMock := &mocks.RnibReaderMock{}
374 writerMock := &mocks.RnibWriterMock{}
375 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
376 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
377 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
378 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
379 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
380 return handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock
383 func assertNewNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
384 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
385 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
386 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
387 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
388 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
389 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
390 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)
393 func assertExistingNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
394 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
395 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
396 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
397 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
398 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
399 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
400 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)