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.
18 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 // platform project (RICP).
21 package httpmsghandlers_test
24 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
25 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
26 "github.com/pkg/errors"
27 "github.com/stretchr/testify/assert"
28 "github.com/stretchr/testify/mock"
31 "rsm/handlers/httpmsghandlers"
41 func initTest(t *testing.T) (*httpmsghandlers.ResourceStatusRequestHandler, *mocks.RnibReaderMock, *mocks.RsmReaderMock, *mocks.RsmWriterMock, *mocks.ResourceStatusServiceMock) {
42 log, err := logger.InitLogger(logger.DebugLevel)
44 t.Errorf("#... - failed to initialize logger, error: %s", err)
47 config, err := configuration.ParseConfiguration()
49 t.Errorf("#... - failed to parse configuration error: %s", err)
52 resourceStatusServiceMock := &mocks.ResourceStatusServiceMock{}
53 rnibReaderMock := &mocks.RnibReaderMock{}
54 rsmReaderMock := &mocks.RsmReaderMock{}
55 rsmWriterMock := &mocks.RsmWriterMock{}
57 rnibDataService := services.NewRnibDataService(log, config, rnibReaderMock, rsmReaderMock, rsmWriterMock)
58 handler := httpmsghandlers.NewResourceStatusRequestHandler(log, rnibDataService, resourceStatusServiceMock)
60 return handler, rnibReaderMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock
63 func TestResourceStatusRequestHandlerGetConfigError(t *testing.T) {
65 handler, _, rsmReaderMock, _, _ := initTest(t)
67 err := common.NewInternalError(errors.New("Error"))
68 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(tests.GetRsmGeneralConfiguration(true), err)
70 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
71 actualErr := handler.Handle(resourceStatusRequest)
73 rsmReaderMock.AssertNumberOfCalls(t, "SaveRsmGeneralConfiguration", 0)
75 assert.Equal(t, actualErr, rsmerrors.NewRnibDbError())
78 func TestResourceStatusRequestHandlerSaveConfigError(t *testing.T) {
80 handler, readerMock, rsmReaderMock, rsmWriterMock, _ := initTest(t)
82 err := common.NewInternalError(errors.New("Error"))
83 config := tests.GetRsmGeneralConfiguration(true)
84 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
85 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(err)
87 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
88 actualErr := handler.Handle(resourceStatusRequest)
90 readerMock.AssertNumberOfCalls(t, "GetListEnbIds", 0)
92 assert.Equal(t, actualErr, rsmerrors.NewRnibDbError())
95 func TestResourceStatusRequestHandleGetListEnbIdsError(t *testing.T) {
97 handler, readerMock, rsmReaderMock, rsmWriterMock, _ := initTest(t)
99 err := common.NewInternalError(errors.New("Error"))
100 config := tests.GetRsmGeneralConfiguration(true)
101 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
102 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
104 var nbIdentityList []*entities.NbIdentity
105 readerMock.On("GetListEnbIds").Return(nbIdentityList, err)
107 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
108 actualErr := handler.Handle(resourceStatusRequest)
110 readerMock.AssertNumberOfCalls(t, "GetNodeb", 0)
112 assert.Equal(t, actualErr, rsmerrors.NewRnibDbError())
115 func TestResourceStatusRequestHandlerTrueStartSuccess(t *testing.T) {
117 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
119 config := tests.GetRsmGeneralConfiguration(true)
120 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
121 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
123 nbIdentityList := CreateIdentityList()
124 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
126 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
127 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
128 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
129 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
130 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
131 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
133 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Start, ActionStatus:false}
134 rrInfo2 := &models.RsmRanInfo{RanName:"RanName_2", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Start, ActionStatus:true}
135 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Stop, ActionStatus:false}
136 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, nil)
137 rsmReaderMock.On("GetRsmRanInfo", "RanName_2").Return(rrInfo2, nil)
138 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
140 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(nil)
142 resourceStatusServiceMock.On("BuildAndSendInitiateRequest", nb1, config, enums.Enb1MeasurementId).Return(nil)
143 resourceStatusServiceMock.On("BuildAndSendInitiateRequest", nb3, config, enums.Enb1MeasurementId).Return(nil)
146 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
147 actualErr := handler.Handle(resourceStatusRequest)
149 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
150 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
151 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendInitiateRequest", 2)
153 assert.Equal(t, actualErr, nil)
156 func TestResourceStatusRequestHandlerTrueNumberOfFails1(t *testing.T) {
158 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
160 config := tests.GetRsmGeneralConfiguration(true)
161 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
162 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
164 nbIdentityList := CreateIdentityList()
165 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
167 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
168 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
169 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
170 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
171 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
172 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
174 err := common.NewInternalError(errors.New("Error"))
175 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Start, ActionStatus:false}
176 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Stop, ActionStatus:false}
177 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, err)
178 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
180 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(nil)
182 resourceStatusServiceMock.On("BuildAndSendInitiateRequest", nb3, mock.AnythingOfType("*models.RsmGeneralConfiguration"), enums.Enb1MeasurementId).Return(nil)
185 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
186 actualErr := handler.Handle(resourceStatusRequest)
188 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
189 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
190 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendInitiateRequest", 1)
192 rsmError := rsmerrors.NewRsmError(1)
193 assert.Equal(t, actualErr, rsmError)
194 assert.Equal(t, actualErr.Error(), rsmError.Error())
197 func TestResourceStatusRequestHandlerTrueNumberOfFails3(t *testing.T) {
199 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
201 config := tests.GetRsmGeneralConfiguration(true)
202 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
203 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
205 nbIdentityList := CreateIdentityList()
206 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
208 err := common.NewInternalError(errors.New("Error"))
209 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
210 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
211 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
212 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
213 readerMock.On("GetNodeb", "RanName_2").Return(nb2, err)
214 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
216 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Start, ActionStatus:false}
217 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Stop, ActionStatus:false}
218 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, nil)
219 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
221 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(err)
223 resourceStatusServiceMock.On("BuildAndSendInitiateRequest", nb1, mock.AnythingOfType("*models.RsmGeneralConfiguration"), enums.Enb1MeasurementId).Return(errors.New("Error"))
226 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:true}
227 actualErr := handler.Handle(resourceStatusRequest)
229 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
230 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
231 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendInitiateRequest", 1)
233 rsmError := rsmerrors.NewRsmError(3)
234 assert.Equal(t, actualErr, rsmError)
235 assert.Equal(t, actualErr.Error(), rsmError.Error())
238 func TestResourceStatusRequestHandlerFalseStopSuccess(t *testing.T) {
240 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
242 config := tests.GetRsmGeneralConfiguration(true)
243 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
244 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
246 nbIdentityList := CreateIdentityList()
247 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
249 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
250 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
251 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
252 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
253 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
254 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
256 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:false}
257 rrInfo2 := &models.RsmRanInfo{RanName:"RanName_2", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:true}
258 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Start, ActionStatus:false}
259 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, nil)
260 rsmReaderMock.On("GetRsmRanInfo", "RanName_2").Return(rrInfo2, nil)
261 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
263 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(nil)
265 resourceStatusServiceMock.On("BuildAndSendStopRequest", nb1, config, rrInfo1.Enb1MeasurementId, rrInfo1.Enb2MeasurementId).Return(nil)
266 resourceStatusServiceMock.On("BuildAndSendStopRequest", nb3, config, rrInfo3.Enb1MeasurementId, rrInfo3.Enb2MeasurementId).Return(nil)
269 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:false}
270 actualErr := handler.Handle(resourceStatusRequest)
272 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
273 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
274 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendStopRequest", 2)
276 assert.Equal(t, actualErr, nil)
279 func TestResourceStatusRequestHandlerFalseNumberOfFails1(t *testing.T) {
281 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
283 config := tests.GetRsmGeneralConfiguration(true)
284 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
285 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
287 nbIdentityList := CreateIdentityList()
288 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
290 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
291 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
292 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
293 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
294 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
295 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
297 err := common.NewInternalError(errors.New("Error"))
298 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:false}
299 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Start, ActionStatus:false}
300 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, err)
301 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
303 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(nil)
305 resourceStatusServiceMock.On("BuildAndSendStopRequest", nb3, config, rrInfo3.Enb1MeasurementId, rrInfo3.Enb2MeasurementId).Return(nil)
308 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:false}
309 actualErr := handler.Handle(resourceStatusRequest)
311 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
312 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
313 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendStopRequest", 1)
315 rsmError := rsmerrors.NewRsmError(1)
316 assert.Equal(t, actualErr, rsmError)
317 assert.Equal(t, actualErr.Error(), rsmError.Error())
320 func TestResourceStatusRequestHandlerFalseNumberOfFails3(t *testing.T) {
322 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
324 config := tests.GetRsmGeneralConfiguration(true)
325 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
326 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
328 nbIdentityList := CreateIdentityList()
329 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
331 err := common.NewInternalError(errors.New("Error"))
332 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
333 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
334 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
335 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
336 readerMock.On("GetNodeb", "RanName_2").Return(nb2, err)
337 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
339 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:false}
340 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Start, ActionStatus:false}
341 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, nil)
342 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
344 rsmWriterMock.On("SaveRsmRanInfo", rrInfo3).Return(err)
346 resourceStatusServiceMock.On("BuildAndSendStopRequest", nb1, config, rrInfo1.Enb1MeasurementId, rrInfo1.Enb2MeasurementId).Return(errors.New("Error"))
348 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:false}
349 actualErr := handler.Handle(resourceStatusRequest)
351 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
352 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 1)
353 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendStopRequest", 1)
355 rsmError := rsmerrors.NewRsmError(3)
356 assert.Equal(t, actualErr, rsmError)
357 assert.Equal(t, actualErr.Error(), rsmError.Error())
360 func TestResourceStatusRequestHandlerFalseNoEnb2MeasurementId(t *testing.T) {
362 handler, readerMock, rsmReaderMock, rsmWriterMock, resourceStatusServiceMock := initTest(t)
364 config := tests.GetRsmGeneralConfiguration(true)
365 rsmReaderMock.On("GetRsmGeneralConfiguration").Return(config, nil)
366 rsmWriterMock.On("SaveRsmGeneralConfiguration", config).Return(nil)
368 nbIdentityList := CreateIdentityList()
369 readerMock.On("GetListEnbIds").Return(nbIdentityList, nil)
371 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
372 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
373 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
374 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
375 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
376 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
378 rrInfo1 := &models.RsmRanInfo{RanName:"RanName_1", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:false}
379 rrInfo2 := &models.RsmRanInfo{RanName:"RanName_2", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:2, Action:enums.Stop, ActionStatus:true}
380 rrInfo3 := &models.RsmRanInfo{RanName:"RanName_3", Enb1MeasurementId:enums.Enb1MeasurementId, Enb2MeasurementId:0, Action:enums.Start, ActionStatus:false}
381 rsmReaderMock.On("GetRsmRanInfo", "RanName_1").Return(rrInfo1, nil)
382 rsmReaderMock.On("GetRsmRanInfo", "RanName_2").Return(rrInfo2, nil)
383 rsmReaderMock.On("GetRsmRanInfo", "RanName_3").Return(rrInfo3, nil)
385 resourceStatusServiceMock.On("BuildAndSendStopRequest", nb1, config, rrInfo1.Enb1MeasurementId, rrInfo1.Enb2MeasurementId).Return(nil)
387 resourceStatusRequest := models.ResourceStatusRequest{EnableResourceStatus:false}
388 actualErr := handler.Handle(resourceStatusRequest)
390 readerMock.AssertNumberOfCalls(t, "GetNodeb", 3)
391 rsmWriterMock.AssertNumberOfCalls(t, "SaveRsmRanInfo", 0)
392 resourceStatusServiceMock.AssertNumberOfCalls(t, "BuildAndSendStopRequest", 1)
394 rsmError := rsmerrors.NewRsmError(1)
395 assert.Equal(t, actualErr, rsmError)
396 assert.Equal(t, actualErr.Error(), rsmError.Error())
399 func CreateIdentityList() []*entities.NbIdentity {
400 nbIdentity1 := entities.NbIdentity{InventoryName: "RanName_1"}
401 nbIdentity2 := entities.NbIdentity{InventoryName: "RanName_2"}
402 nbIdentity3 := entities.NbIdentity{InventoryName: "RanName_3"}
404 var nbIdentityList []*entities.NbIdentity
405 nbIdentityList = append(nbIdentityList, &nbIdentity1)
406 nbIdentityList = append(nbIdentityList, &nbIdentity2)
407 nbIdentityList = append(nbIdentityList, &nbIdentity3)
409 return nbIdentityList