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.
22 "e2mgr/e2managererrors"
32 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
33 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
34 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
35 "github.com/stretchr/testify/assert"
36 "github.com/stretchr/testify/mock"
41 func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T){
44 readerMock := &mocks.RnibReaderMock{}
45 readerProvider := func() reader.RNibReader {
48 writerMock := &mocks.RnibWriterMock{}
49 writerProvider := func() rNibWriter.RNibWriter {
52 rmrMessengerMock := &mocks.RmrMessengerMock{}
54 config := configuration.ParseConfiguration()
56 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
58 rnibErr := &common.ResourceNotFoundError{}
59 var nbIdentityList []*entities.NbIdentity
60 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr)
62 expected := &e2managererrors.RnibDbError{}
63 actual := handler.Handle(log, nil)
64 if reflect.TypeOf(actual) != reflect.TypeOf(expected){
65 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
69 func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T){
72 readerMock := &mocks.RnibReaderMock{}
73 readerProvider := func() reader.RNibReader {
76 writerMock := &mocks.RnibWriterMock{}
77 writerProvider := func() rNibWriter.RNibWriter {
80 rmrMessengerMock := &mocks.RmrMessengerMock{}
81 config := configuration.ParseConfiguration()
82 config.BigRedButtonTimeoutSec = 1
84 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
86 rnibErr := &common.ResourceNotFoundError{}
87 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
88 nbIdentityList := createIdentityList()
90 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil).Return(nbIdentityList, rnibErr)
92 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
93 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
94 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
95 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
96 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
97 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
99 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
100 updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
101 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
102 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
104 expected := &e2managererrors.RnibDbError{}
105 actual := handler.Handle(log, nil)
107 if reflect.TypeOf(actual) != reflect.TypeOf(expected){
108 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
112 func TestHandleSuccessFlow(t *testing.T){
115 readerMock := &mocks.RnibReaderMock{}
116 readerProvider := func() reader.RNibReader {
119 writerMock := &mocks.RnibWriterMock{}
120 writerProvider := func() rNibWriter.RNibWriter {
123 rmrMessengerMock := &mocks.RmrMessengerMock{}
124 config := configuration.ParseConfiguration()
125 config.BigRedButtonTimeoutSec = 1
126 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
128 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
129 nbIdentityList := createIdentityList()
130 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
132 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
133 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
134 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
135 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
136 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
137 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
139 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
140 updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
141 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
142 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
144 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
145 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
147 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
148 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
149 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
150 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
151 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
152 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
154 updatedNb2AfterTimer := &entities.NodebInfo{RanName:"RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
155 updatedNb3AfterTimer := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
156 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
157 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
159 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
160 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
162 actual := handler.Handle(log, nil)
164 assert.Nil(t, actual)
167 func TestHandleSuccessGetNextStatusFlow(t *testing.T){
170 readerMock := &mocks.RnibReaderMock{}
171 readerProvider := func() reader.RNibReader {
174 writerMock := &mocks.RnibWriterMock{}
175 writerProvider := func() rNibWriter.RNibWriter {
178 rmrMessengerMock := &mocks.RmrMessengerMock{}
179 config := configuration.ParseConfiguration()
180 config.BigRedButtonTimeoutSec = 1
181 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
183 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
184 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
186 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
187 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
189 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
190 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
192 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
193 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
195 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
196 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
198 updatedNb1AfterTimer := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
199 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
201 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
202 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
204 actual := handler.Handle(log, nil)
206 assert.Nil(t, actual)
209 func TestHandleShuttingDownStatusFlow(t *testing.T){
212 readerMock := &mocks.RnibReaderMock{}
213 readerProvider := func() reader.RNibReader {
216 writerMock := &mocks.RnibWriterMock{}
217 writerProvider := func() rNibWriter.RNibWriter {
220 rmrMessengerMock := &mocks.RmrMessengerMock{}
221 config := configuration.ParseConfiguration()
222 config.BigRedButtonTimeoutSec = 1
223 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
225 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
226 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
228 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
229 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
231 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
232 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
234 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
235 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
237 updatedNb1AfterTimer := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
238 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
240 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
241 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
243 actual := handler.Handle(log, nil)
245 assert.Nil(t, actual)
248 func TestHandleGetNodebFailedFlow(t *testing.T){
251 readerMock := &mocks.RnibReaderMock{}
252 readerProvider := func() reader.RNibReader {
255 writerMock := &mocks.RnibWriterMock{}
256 writerProvider := func() rNibWriter.RNibWriter {
259 rmrMessengerMock := &mocks.RmrMessengerMock{}
260 config := configuration.ParseConfiguration()
261 config.BigRedButtonTimeoutSec = 1
262 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
264 //Before timer: Disconnected->ShutDown(will fail), ShuttingDown->Ignore, Connected->ShuttingDown
265 nbIdentityList := createIdentityList()
266 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
268 errRnib := &common.ResourceNotFoundError{}
269 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
270 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
271 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
272 readerMock.On("GetNodeb", "RanName_1").Return(nb1, errRnib)
273 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
274 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
276 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
277 updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
278 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(errRnib)
279 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
281 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
282 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
284 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
285 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
286 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
287 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, errRnib)
288 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
289 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
291 updatedNb2AfterTimer := &entities.NodebInfo{RanName:"RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
292 updatedNb3AfterTimer := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
293 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
294 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
296 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
297 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
299 actual := handler.Handle(log, nil)
301 assert.Nil(t, actual)
304 func TestHandleSaveFailedFlow(t *testing.T){
307 readerMock := &mocks.RnibReaderMock{}
308 readerProvider := func() reader.RNibReader {
311 writerMock := &mocks.RnibWriterMock{}
312 writerProvider := func() rNibWriter.RNibWriter {
315 rmrMessengerMock := &mocks.RmrMessengerMock{}
316 config := configuration.ParseConfiguration()
317 config.BigRedButtonTimeoutSec = 1
318 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
320 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
321 nbIdentityList := createIdentityList()
322 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
324 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
325 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
326 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
327 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
328 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
329 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
331 errRnib := &common.ResourceNotFoundError{}
332 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
333 updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
334 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
335 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(errRnib)
337 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
338 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
340 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
341 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
342 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
343 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
344 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
345 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
347 updatedNb2AfterTimer := &entities.NodebInfo{RanName:"RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
348 updatedNb3AfterTimer := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
349 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
350 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(errRnib)
352 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
353 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
355 actual := handler.Handle(log, nil)
357 assert.Nil(t, actual)
360 func TestHandleSendRmrFailedFlow(t *testing.T){
363 readerMock := &mocks.RnibReaderMock{}
364 readerProvider := func() reader.RNibReader {
367 writerMock := &mocks.RnibWriterMock{}
368 writerProvider := func() rNibWriter.RNibWriter {
371 rmrMessengerMock := &mocks.RmrMessengerMock{}
372 config := configuration.ParseConfiguration()
373 config.BigRedButtonTimeoutSec = 1
374 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
376 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
377 nbIdentityList := createIdentityList()
378 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
380 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
381 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
382 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
383 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
384 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
385 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
387 updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
388 updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
389 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
390 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
392 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
393 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
395 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
396 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
397 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
398 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
399 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
400 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
402 updatedNb2AfterTimer := &entities.NodebInfo{RanName:"RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
403 updatedNb3AfterTimer := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
404 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
405 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
407 expected := e2managererrors.NewRmrError()
408 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
409 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, expected)
411 actual := handler.Handle(log, nil)
413 if reflect.TypeOf(actual) != reflect.TypeOf(expected){
414 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
418 func TestHandleGetListEnbIdsEmptyFlow(t *testing.T){
421 readerMock := &mocks.RnibReaderMock{}
422 readerProvider := func() reader.RNibReader {
425 writerMock := &mocks.RnibWriterMock{}
426 writerProvider := func() rNibWriter.RNibWriter {
429 rmrMessengerMock := &mocks.RmrMessengerMock{}
430 config := configuration.ParseConfiguration()
432 handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
435 nbIdentityList := []*entities.NbIdentity{}
437 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError)
439 actual := handler.Handle(log, nil)
440 readerMock.AssertNumberOfCalls(t, "GetNodeb", 0)
441 assert.Nil(t, actual)
444 func createIdentityList() []*entities.NbIdentity {
445 nbIdentity1 := entities.NbIdentity{InventoryName: "RanName_1"}
446 nbIdentity2 := entities.NbIdentity{InventoryName: "RanName_2"}
447 nbIdentity3 := entities.NbIdentity{InventoryName: "RanName_3"}
449 var nbIdentityList []*entities.NbIdentity
450 nbIdentityList = append(nbIdentityList, &nbIdentity1)
451 nbIdentityList = append(nbIdentityList, &nbIdentity2)
452 nbIdentityList = append(nbIdentityList, &nbIdentity3)
454 return nbIdentityList
457 func initLog(t *testing.T) *logger.Logger {
458 log, err := logger.InitLogger(logger.InfoLevel)
460 t.Errorf("#initLog test - failed to initialize logger, error: %s", err)
466 func getRmrService(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *services.RmrService {
467 rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
468 messageChannel := make(chan *models.NotificationResponse)
469 rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
470 return services.NewRmrService(services.NewRmrConfig(tests.Port, tests.MaxMsgSize, tests.Flags, log), rmrMessenger, make(sessions.E2Sessions), messageChannel)