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 package httpmsghandlers
22 "e2mgr/e2managererrors"
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 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
34 "github.com/stretchr/testify/assert"
35 "github.com/stretchr/testify/mock"
40 func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T) {
43 readerMock := &mocks.RnibReaderMock{}
44 readerProvider := func() reader.RNibReader {
47 writerMock := &mocks.RnibWriterMock{}
48 writerProvider := func() rNibWriter.RNibWriter {
51 rmrMessengerMock := &mocks.RmrMessengerMock{}
53 config := configuration.ParseConfiguration()
55 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
57 rnibErr := &common.ResourceNotFoundError{}
58 var nbIdentityList []*entities.NbIdentity
59 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr)
61 expected := &e2managererrors.RnibDbError{}
62 actual := handler.Handle(nil)
63 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
64 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
68 func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T) {
71 readerMock := &mocks.RnibReaderMock{}
72 readerProvider := func() reader.RNibReader {
75 writerMock := &mocks.RnibWriterMock{}
76 writerProvider := func() rNibWriter.RNibWriter {
79 rmrMessengerMock := &mocks.RmrMessengerMock{}
80 config := configuration.ParseConfiguration()
81 config.BigRedButtonTimeoutSec = 1
83 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
85 rnibErr := &common.ResourceNotFoundError{}
86 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
87 nbIdentityList := createIdentityList()
89 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil).Return(nbIdentityList, rnibErr)
91 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
92 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
93 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
94 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
95 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
96 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
98 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
99 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
100 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
101 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
103 expected := &e2managererrors.RnibDbError{}
104 actual := handler.Handle(nil)
106 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
107 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
111 func TestHandleSuccessFlow(t *testing.T) {
114 readerMock := &mocks.RnibReaderMock{}
115 readerProvider := func() reader.RNibReader {
118 writerMock := &mocks.RnibWriterMock{}
119 writerProvider := func() rNibWriter.RNibWriter {
122 rmrMessengerMock := &mocks.RmrMessengerMock{}
123 config := configuration.ParseConfiguration()
124 config.BigRedButtonTimeoutSec = 1
125 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
127 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
128 nbIdentityList := createIdentityList()
129 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
131 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
132 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
133 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
134 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
135 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
136 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
138 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
139 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
140 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
141 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
143 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
144 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
146 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
147 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
148 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
149 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
150 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
151 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
153 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
154 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
155 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
156 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
158 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
159 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
161 actual := handler.Handle(nil)
163 assert.Nil(t, actual)
166 func TestHandleSuccessGetNextStatusFlow(t *testing.T) {
169 readerMock := &mocks.RnibReaderMock{}
170 readerProvider := func() reader.RNibReader {
173 writerMock := &mocks.RnibWriterMock{}
174 writerProvider := func() rNibWriter.RNibWriter {
177 rmrMessengerMock := &mocks.RmrMessengerMock{}
178 config := configuration.ParseConfiguration()
179 config.BigRedButtonTimeoutSec = 1
180 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
182 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
183 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
185 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
186 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
188 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
189 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
191 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
192 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
194 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
195 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
197 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
198 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
200 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
201 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
203 actual := handler.Handle(nil)
205 assert.Nil(t, actual)
208 func TestHandleShuttingDownStatusFlow(t *testing.T) {
211 readerMock := &mocks.RnibReaderMock{}
212 readerProvider := func() reader.RNibReader {
215 writerMock := &mocks.RnibWriterMock{}
216 writerProvider := func() rNibWriter.RNibWriter {
219 rmrMessengerMock := &mocks.RmrMessengerMock{}
220 config := configuration.ParseConfiguration()
221 config.BigRedButtonTimeoutSec = 1
222 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
224 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
225 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
227 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
228 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
230 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
231 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
233 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
234 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
236 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
237 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
239 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
240 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
242 actual := handler.Handle(nil)
244 assert.Nil(t, actual)
247 func TestHandleGetNodebFailedFlow(t *testing.T) {
250 readerMock := &mocks.RnibReaderMock{}
251 readerProvider := func() reader.RNibReader {
254 writerMock := &mocks.RnibWriterMock{}
255 writerProvider := func() rNibWriter.RNibWriter {
258 rmrMessengerMock := &mocks.RmrMessengerMock{}
259 config := configuration.ParseConfiguration()
260 config.BigRedButtonTimeoutSec = 1
261 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
263 //Before timer: Disconnected->ShutDown(will fail), ShuttingDown->Ignore, Connected->ShuttingDown
264 nbIdentityList := createIdentityList()
265 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
267 errRnib := &common.ResourceNotFoundError{}
268 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
269 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
270 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
271 readerMock.On("GetNodeb", "RanName_1").Return(nb1, errRnib)
272 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
273 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
275 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
276 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
277 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(errRnib)
278 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
280 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
281 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
283 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
284 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
285 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
286 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, errRnib)
287 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
288 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
290 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
291 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
292 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
293 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
295 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
296 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
298 actual := handler.Handle(nil)
300 assert.Nil(t, actual)
303 func TestHandleSaveFailedFlow(t *testing.T) {
306 readerMock := &mocks.RnibReaderMock{}
307 readerProvider := func() reader.RNibReader {
310 writerMock := &mocks.RnibWriterMock{}
311 writerProvider := func() rNibWriter.RNibWriter {
314 rmrMessengerMock := &mocks.RmrMessengerMock{}
315 config := configuration.ParseConfiguration()
316 config.BigRedButtonTimeoutSec = 1
317 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
319 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
320 nbIdentityList := createIdentityList()
321 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
323 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
324 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
325 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
326 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
327 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
328 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
330 errRnib := &common.ResourceNotFoundError{}
331 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
332 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
333 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
334 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(errRnib)
336 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
337 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
339 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
340 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
341 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
342 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
343 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
344 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
346 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
347 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
348 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
349 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(errRnib)
351 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
352 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, nil)
354 actual := handler.Handle(nil)
356 assert.Nil(t, actual)
359 func TestHandleSendRmrFailedFlow(t *testing.T) {
362 readerMock := &mocks.RnibReaderMock{}
363 readerProvider := func() reader.RNibReader {
366 writerMock := &mocks.RnibWriterMock{}
367 writerProvider := func() rNibWriter.RNibWriter {
370 rmrMessengerMock := &mocks.RmrMessengerMock{}
371 config := configuration.ParseConfiguration()
372 config.BigRedButtonTimeoutSec = 1
373 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
375 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
376 nbIdentityList := createIdentityList()
377 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
379 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
380 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
381 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
382 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
383 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
384 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
386 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
387 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
388 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
389 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
391 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
392 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
394 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
395 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
396 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
397 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
398 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
399 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
401 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
402 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
403 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
404 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
406 expected := e2managererrors.NewRmrError()
407 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
408 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, expected)
410 actual := handler.Handle(nil)
412 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
413 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
417 func TestHandleGetListEnbIdsEmptyFlow(t *testing.T) {
420 readerMock := &mocks.RnibReaderMock{}
421 readerProvider := func() reader.RNibReader {
424 writerMock := &mocks.RnibWriterMock{}
425 writerProvider := func() rNibWriter.RNibWriter {
428 rmrMessengerMock := &mocks.RmrMessengerMock{}
429 config := configuration.ParseConfiguration()
431 handler := NewDeleteAllRequestHandler(log, getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)
434 nbIdentityList := []*entities.NbIdentity{}
436 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError)
438 actual := handler.Handle(nil)
439 readerMock.AssertNumberOfCalls(t, "GetNodeb", 0)
440 assert.Nil(t, actual)
443 func createIdentityList() []*entities.NbIdentity {
444 nbIdentity1 := entities.NbIdentity{InventoryName: "RanName_1"}
445 nbIdentity2 := entities.NbIdentity{InventoryName: "RanName_2"}
446 nbIdentity3 := entities.NbIdentity{InventoryName: "RanName_3"}
448 var nbIdentityList []*entities.NbIdentity
449 nbIdentityList = append(nbIdentityList, &nbIdentity1)
450 nbIdentityList = append(nbIdentityList, &nbIdentity2)
451 nbIdentityList = append(nbIdentityList, &nbIdentity3)
453 return nbIdentityList
456 func initLog(t *testing.T) *logger.Logger {
457 log, err := logger.InitLogger(logger.InfoLevel)
459 t.Errorf("#initLog test - failed to initialize logger, error: %s", err)
464 func getRmrService(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *services.RmrService {
465 rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
466 messageChannel := make(chan *models.NotificationResponse)
467 rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
468 return services.NewRmrService(services.NewRmrConfig(tests.Port, tests.MaxMsgSize, tests.Flags, log), rmrMessenger, messageChannel)