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, "131014", request.GetPlmnId())
69 assert.Equal(t, "10011001101010101011", 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 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
130 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
131 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
132 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
134 rmrMessage := &rmrCgo.MBuf{}
135 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
136 prefBytes := []byte(prefix)
137 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
138 handler.Handle(notificationRequest)
139 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
142 func TestE2SetupRequestNotificationHandler_HandleNewEnGnbSuccess(t *testing.T) {
143 xmlEnGnb := readXmlFile(t, EnGnbSetupRequestXmlPath)
144 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
145 var e2tInstance = &entities.E2TInstance{}
146 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
147 var gnb *entities.NodebInfo
148 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
149 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
150 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
151 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
152 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
154 rmrMessage := &rmrCgo.MBuf{}
155 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
156 prefBytes := []byte(prefix)
157 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
158 handler.Handle(notificationRequest)
159 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
162 func TestE2SetupRequestNotificationHandler_HandleNewNgEnbSuccess(t *testing.T) {
163 xmlNgEnb := readXmlFile(t, NgEnbSetupRequestXmlPath)
164 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
165 var e2tInstance = &entities.E2TInstance{}
166 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
167 var gnb *entities.NodebInfo
168 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
169 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
170 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
171 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
172 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
174 rmrMessage := &rmrCgo.MBuf{}
175 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
176 prefBytes := []byte(prefix)
177 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlNgEnb...)}
178 handler.Handle(notificationRequest)
179 assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
182 func TestE2SetupRequestNotificationHandler_HandleExistingGnbSuccess(t *testing.T) {
183 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
185 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
186 var e2tInstance = &entities.E2TInstance{}
187 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
188 var gnb = &entities.NodebInfo{
189 RanName: nodebRanName,
190 AssociatedE2TInstanceAddress: e2tInstanceFullAddress,
191 ConnectionStatus: entities.ConnectionStatus_CONNECTED,
192 NodeType: entities.Node_GNB,
193 Configuration: &entities.NodebInfo_Gnb{Gnb: &entities.Gnb{}},
195 readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
196 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
197 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
198 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
200 rmrMessage := &rmrCgo.MBuf{}
201 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
202 prefBytes := []byte(prefix)
203 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
204 handler.Handle(notificationRequest)
205 assertExistingNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
208 func TestE2SetupRequestNotificationHandler_HandleParseError(t *testing.T) {
209 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
211 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
212 prefBytes := []byte("invalid_prefix")
213 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
214 handler.Handle(notificationRequest)
215 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
216 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
217 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
218 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
219 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
220 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
223 func TestE2SetupRequestNotificationHandler_HandleUnmarshalError(t *testing.T) {
224 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
225 prefBytes := []byte(prefix)
226 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, "xmlGnb"...)}
227 handler.Handle(notificationRequest)
228 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
229 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
230 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
231 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
232 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
233 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
236 func TestE2SetupRequestNotificationHandler_HandleGetE2TInstanceError(t *testing.T) {
237 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
238 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
239 var e2tInstance *entities.E2TInstance
240 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, common.NewResourceNotFoundError("Not found"))
241 prefBytes := []byte(prefix)
242 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
243 handler.Handle(notificationRequest)
244 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
245 readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
246 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
247 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
248 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
249 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
250 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
253 func TestE2SetupRequestNotificationHandler_HandleGetNodebError(t *testing.T) {
254 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
256 handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
257 var e2tInstance = &entities.E2TInstance{}
258 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
259 var gnb *entities.NodebInfo
260 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewInternalError(errors.New("some error")))
261 prefBytes := []byte(prefix)
262 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
263 handler.Handle(notificationRequest)
264 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
265 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
266 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
267 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
268 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
269 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
270 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
273 func TestE2SetupRequestNotificationHandler_HandleAssociationError(t *testing.T) {
274 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
276 handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
277 var e2tInstance = &entities.E2TInstance{}
278 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
279 var gnb *entities.NodebInfo
280 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
281 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
282 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
283 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
284 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(errors.New("association error"))
286 rmrMessage := &rmrCgo.MBuf{}
287 rmrMessengerMock.On("WhSendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
289 prefBytes := []byte(prefix)
290 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
291 handler.Handle(notificationRequest)
292 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
293 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
294 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
295 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
296 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
297 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
298 rmrMessengerMock.AssertCalled(t, "WhSendMsg", mock.Anything, mock.Anything)
301 func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing.T) {
302 xmlEnGnb := readXmlFile(t, EnGnbSetupRequestXmlPath)
303 logger := tests.InitLog(t)
304 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
307 }{PlmnId: "131014", RicNearRtId: "10011001101010101011"}}
308 rmrMessengerMock := &mocks.RmrMessengerMock{}
309 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
310 readerMock := &mocks.RnibReaderMock{}
311 writerMock := &mocks.RnibWriterMock{}
312 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
313 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
314 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
315 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
316 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
318 var e2tInstance = &entities.E2TInstance{}
319 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
320 var gnb *entities.NodebInfo
321 readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
322 writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
323 routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
324 writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
325 e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
327 rmrMessage := &rmrCgo.MBuf{}
328 rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
329 prefBytes := []byte(prefix)
330 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
331 handler.Handle(notificationRequest)
332 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
333 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
334 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
335 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
336 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
337 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
338 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
341 func TestE2SetupRequestNotificationHandler_HandleExistingGnbInvalidStatusError(t *testing.T) {
342 xmlGnb := readXmlFile(t, GnbSetupRequestXmlPath)
343 handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
344 var gnb = &entities.NodebInfo{RanName: nodebRanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
345 readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
346 var e2tInstance = &entities.E2TInstance{}
347 e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
348 prefBytes := []byte(prefix)
349 notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
350 handler.Handle(notificationRequest)
351 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
352 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
353 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
354 routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
355 writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
356 e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
357 rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
360 func initMocks(t *testing.T) (E2SetupRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock, *mocks.RoutingManagerClientMock) {
361 logger := tests.InitLog(t)
362 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
365 }{PlmnId: "131014", RicNearRtId: "556670"}}
366 rmrMessengerMock := &mocks.RmrMessengerMock{}
367 rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
368 readerMock := &mocks.RnibReaderMock{}
369 writerMock := &mocks.RnibWriterMock{}
370 routingManagerClientMock := &mocks.RoutingManagerClientMock{}
371 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
372 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
373 e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
374 handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
375 return handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock
378 func assertNewNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
379 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
380 writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
381 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
382 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
383 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
384 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
385 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)
388 func assertExistingNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
389 readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
390 writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
391 e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
392 routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
393 writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
394 e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
395 rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)