RIC-193 - Setup from RAN fixes: Marshal XML Response, trim whitespaces, convert ricId...
[ric-plt/e2mgr.git] / E2Manager / handlers / rmrmsghandlers / e2_setup_request_notification_handler_test.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
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
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16
17 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20 package rmrmsghandlers
21
22 import (
23         "e2mgr/configuration"
24         "e2mgr/managers"
25         "e2mgr/mocks"
26         "e2mgr/models"
27         "e2mgr/rmrCgo"
28         "e2mgr/services"
29         "e2mgr/tests"
30         "errors"
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"
35         "io/ioutil"
36         "path/filepath"
37         "testing"
38 )
39
40 const (
41         prefix = "10.0.2.15:9999|"
42         e2tInstanceFullAddress = "10.0.2.15:9999"
43         nodebRanName = "gnb:310-410-b5c67788"
44 )
45
46 func TestParseSetupRequest_Success(t *testing.T){
47         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
48         if err != nil {
49                 t.Fatal(err)
50         }
51         xmlGnb, err := ioutil.ReadFile(path)
52         if err != nil {
53                 t.Fatal(err)
54         }
55         handler, _, _, _, _, _ := initMocks(t)
56         prefBytes := []byte(prefix)
57         request, _, err := handler.parseSetupRequest(append(prefBytes, xmlGnb...))
58         assert.Equal(t, request.GetPlmnId(), "131014")
59         assert.Equal(t, request.GetNbId(), "10011001101010101011")
60 }
61
62 func TestParseSetupRequest_PipFailure(t *testing.T){
63         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
64         if err != nil {
65                 t.Fatal(err)
66         }
67         xmlGnb, err := ioutil.ReadFile(path)
68         if err != nil {
69                 t.Fatal(err)
70         }
71         handler, _, _, _, _, _ := initMocks(t)
72         prefBytes := []byte("10.0.2.15:9999")
73         request, _, err := handler.parseSetupRequest(append(prefBytes, xmlGnb...))
74         assert.Nil(t, request)
75         assert.NotNil(t, err)
76         assert.EqualError(t, err, "#E2SetupRequestNotificationHandler.parseSetupRequest - Error parsing E2 Setup Request failed extract Payload: no | separator found")
77 }
78
79 func TestParseSetupRequest_UnmarshalFailure(t *testing.T){
80         handler, _, _, _, _, _ := initMocks(t)
81         prefBytes := []byte(prefix)
82         request, _, err := handler.parseSetupRequest(append(prefBytes, 1,2,3))
83         assert.Nil(t, request)
84         assert.NotNil(t, err)
85         assert.EqualError(t, err, "#E2SetupRequestNotificationHandler.parseSetupRequest - Error unmarshalling E2 Setup Request payload: 31302e302e322e31353a393939397c010203")
86 }
87
88 func TestE2SetupRequestNotificationHandler_HandleNewGnbSuccess(t *testing.T) {
89         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
90         if err != nil {
91                 t.Fatal(err)
92         }
93         xmlGnb, err := ioutil.ReadFile(path)
94         if err != nil {
95                 t.Fatal(err)
96         }
97
98         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
99         var e2tInstance = &entities.E2TInstance{}
100         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
101         var gnb *entities.NodebInfo
102         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
103         writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
104         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
105         writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
106         e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
107         var errEmpty error
108         rmrMessage := &rmrCgo.MBuf{}
109         rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
110         prefBytes := []byte(prefix)
111         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
112         handler.Handle(notificationRequest)
113         assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
114 }
115
116 func TestE2SetupRequestNotificationHandler_HandleNewEnGnbSuccess(t *testing.T) {
117         path, err :=filepath.Abs("../../tests/resources/setupRequest_en-gNB.xml")
118         if err != nil {
119                 t.Fatal(err)
120         }
121         xmlEnGnb, err := ioutil.ReadFile(path)
122         if err != nil {
123                 t.Fatal(err)
124         }
125
126         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
127         var e2tInstance = &entities.E2TInstance{}
128         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
129         var gnb *entities.NodebInfo
130         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
131         writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
132         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
133         writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
134         e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
135         var errEmpty error
136         rmrMessage := &rmrCgo.MBuf{}
137         rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
138         prefBytes := []byte(prefix)
139         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
140         handler.Handle(notificationRequest)
141         assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
142 }
143
144 func TestE2SetupRequestNotificationHandler_HandleNewNgEnbSuccess(t *testing.T) {
145         path, err :=filepath.Abs("../../tests/resources/setupRequest_ng-eNB.xml")
146         if err != nil {
147                 t.Fatal(err)
148         }
149         xmlEnGnb, err := ioutil.ReadFile(path)
150         if err != nil {
151                 t.Fatal(err)
152         }
153
154         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
155         var e2tInstance = &entities.E2TInstance{}
156         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
157         var gnb *entities.NodebInfo
158         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
159         writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
160         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
161         writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
162         e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
163         var errEmpty error
164         rmrMessage := &rmrCgo.MBuf{}
165         rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
166         prefBytes := []byte(prefix)
167         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
168         handler.Handle(notificationRequest)
169         assertNewNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
170 }
171
172 func TestE2SetupRequestNotificationHandler_HandleExistingGnbSuccess(t *testing.T) {
173         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
174         if err != nil {
175                 t.Fatal(err)
176         }
177         xmlGnb, err := ioutil.ReadFile(path)
178         if err != nil {
179                 t.Fatal(err)
180         }
181
182         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
183         var e2tInstance = &entities.E2TInstance{}
184         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
185         var gnb = &entities.NodebInfo{
186                 RanName: nodebRanName,
187                 AssociatedE2TInstanceAddress: e2tInstanceFullAddress,
188                 ConnectionStatus: entities.ConnectionStatus_CONNECTED,
189                 NodeType: entities.Node_GNB,
190                 Configuration: &entities.NodebInfo_Gnb{Gnb: &entities.Gnb{}},
191         }
192         readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
193         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
194         writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
195         e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
196         var errEmpty error
197         rmrMessage := &rmrCgo.MBuf{}
198         rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
199         prefBytes := []byte(prefix)
200         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
201         handler.Handle(notificationRequest)
202         assertExistingNodebSuccessCalls(readerMock, t, e2tInstancesManagerMock, writerMock, routingManagerClientMock, rmrMessengerMock)
203 }
204
205 func TestE2SetupRequestNotificationHandler_HandleParseError(t *testing.T) {
206         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
207         if err != nil {
208                 t.Fatal(err)
209         }
210         xmlGnb, err := ioutil.ReadFile(path)
211         if err != nil {
212                 t.Fatal(err)
213         }
214
215         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
216         prefBytes := []byte("invalid_prefix")
217         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
218         handler.Handle(notificationRequest)
219         readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
220         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
221         routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
222         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
223         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
224         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
225 }
226
227 func TestE2SetupRequestNotificationHandler_HandleUnmarshalError(t *testing.T) {
228         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
229         prefBytes := []byte(prefix)
230         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, "xmlGnb"...)}
231         handler.Handle(notificationRequest)
232         readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
233         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
234         routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
235         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
236         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
237         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
238 }
239
240 func TestE2SetupRequestNotificationHandler_HandleGetE2TInstanceError(t *testing.T) {
241         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
242         if err != nil {
243                 t.Fatal(err)
244         }
245         xmlGnb, err := ioutil.ReadFile(path)
246         if err != nil {
247                 t.Fatal(err)
248         }
249
250         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
251         var e2tInstance * entities.E2TInstance
252         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, common.NewResourceNotFoundError("Not found"))
253         prefBytes := []byte(prefix)
254         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
255         handler.Handle(notificationRequest)
256         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
257         readerMock.AssertNotCalled(t, "GetNodeb", mock.Anything)
258         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
259         routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
260         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
261         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
262         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
263 }
264
265 func TestE2SetupRequestNotificationHandler_HandleGetNodebError(t *testing.T) {
266         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
267         if err != nil {
268                 t.Fatal(err)
269         }
270         xmlGnb, err := ioutil.ReadFile(path)
271         if err != nil {
272                 t.Fatal(err)
273         }
274         handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
275         var e2tInstance = &entities.E2TInstance{}
276         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
277         var gnb *entities.NodebInfo
278         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewInternalError(errors.New("some error")))
279         prefBytes := []byte(prefix)
280         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
281         handler.Handle(notificationRequest)
282         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
283         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
284         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
285         routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
286         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
287         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
288         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
289 }
290
291 func TestE2SetupRequestNotificationHandler_HandleAssociationError(t *testing.T) {
292         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
293         if err != nil {
294                 t.Fatal(err)
295         }
296         xmlGnb, err := ioutil.ReadFile(path)
297         if err != nil {
298                 t.Fatal(err)
299         }
300
301         handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t)
302         var e2tInstance = &entities.E2TInstance{}
303         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
304         var gnb *entities.NodebInfo
305         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
306         writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
307         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(errors.New("association error"))
308
309         prefBytes := []byte(prefix)
310         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
311         handler.Handle(notificationRequest)
312         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
313         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
314         writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
315         routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
316         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
317         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
318         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
319 }
320
321
322 func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing.T){
323
324         path, err :=filepath.Abs("../../tests/resources/setupRequest_en-gNB.xml")
325         if err != nil {
326                 t.Fatal(err)
327         }
328         xmlEnGnb, err := ioutil.ReadFile(path)
329         if err != nil {
330                 t.Fatal(err)
331         }
332         logger := tests.InitLog(t)
333         config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
334                 PlmnId      string
335                 RicNearRtId string
336         }{PlmnId : "131014", RicNearRtId: "10011001101010101011"}}
337         rmrMessengerMock := &mocks.RmrMessengerMock{}
338         rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
339         readerMock := &mocks.RnibReaderMock{}
340         writerMock := &mocks.RnibWriterMock{}
341         routingManagerClientMock := &mocks.RoutingManagerClientMock{}
342         rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
343         e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
344         e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
345         handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
346
347         var e2tInstance = &entities.E2TInstance{}
348         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
349         var gnb *entities.NodebInfo
350         readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found"))
351         writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
352         routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil)
353         writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
354         e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil)
355         var errEmpty error
356         rmrMessage := &rmrCgo.MBuf{}
357         rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty)
358         prefBytes := []byte(prefix)
359         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlEnGnb...)}
360         handler.Handle(notificationRequest)
361         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
362         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
363         writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
364         routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
365         writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
366         e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
367         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
368 }
369
370 func TestE2SetupRequestNotificationHandler_HandleExistingGnbInvalidStatusError(t *testing.T) {
371         path, err :=filepath.Abs("../../tests/resources/setupRequest_gnb.xml")
372         if err != nil {
373                 t.Fatal(err)
374         }
375         xmlGnb, err := ioutil.ReadFile(path)
376         if err != nil {
377                 t.Fatal(err)
378         }
379
380         handler, readerMock, writerMock, routingManagerClientMock, e2tInstancesManagerMock, rmrMessengerMock := initMocks(t)
381         var gnb = &entities.NodebInfo{RanName: nodebRanName, ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN}
382         readerMock.On("GetNodeb", mock.Anything).Return(gnb, nil)
383         var e2tInstance = &entities.E2TInstance{}
384         e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(e2tInstance, nil)
385         prefBytes := []byte(prefix)
386         notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append(prefBytes, xmlGnb...)}
387         handler.Handle(notificationRequest)
388         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
389         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
390         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
391         routingManagerClientMock.AssertNotCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
392         writerMock.AssertNotCalled(t, "UpdateNodebInfo", mock.Anything)
393         e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
394         rmrMessengerMock.AssertNotCalled(t, "SendMsg", mock.Anything, mock.Anything)
395 }
396
397 func initMocks(t *testing.T) (E2SetupRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock, *mocks.RoutingManagerClientMock) {
398         logger := tests.InitLog(t)
399         config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
400                 PlmnId      string
401                 RicNearRtId string
402         }{PlmnId : "131014", RicNearRtId: "556670"}}
403         rmrMessengerMock := &mocks.RmrMessengerMock{}
404         rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
405         readerMock := &mocks.RnibReaderMock{}
406         writerMock := &mocks.RnibWriterMock{}
407         routingManagerClientMock := &mocks.RoutingManagerClientMock{}
408         rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
409         e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
410         e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock)
411         handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager)
412         return handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock
413 }
414
415 func assertNewNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
416         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
417         writerMock.AssertCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
418         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
419         routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
420         writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
421         e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
422         rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)
423 }
424
425 func assertExistingNodebSuccessCalls(readerMock *mocks.RnibReaderMock, t *testing.T, e2tInstancesManagerMock *mocks.E2TInstancesManagerMock, writerMock *mocks.RnibWriterMock, routingManagerClientMock *mocks.RoutingManagerClientMock, rmrMessengerMock *mocks.RmrMessengerMock) {
426         readerMock.AssertCalled(t, "GetNodeb", mock.Anything)
427         writerMock.AssertNotCalled(t, "SaveNodeb", mock.Anything, mock.Anything)
428         e2tInstancesManagerMock.AssertCalled(t, "GetE2TInstance", e2tInstanceFullAddress)
429         routingManagerClientMock.AssertCalled(t, "AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything)
430         writerMock.AssertCalled(t, "UpdateNodebInfo", mock.Anything)
431         e2tInstancesManagerMock.AssertCalled(t, "AddRansToInstance", mock.Anything, mock.Anything)
432         rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, mock.Anything)
433 }