+ nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
+ nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
+ nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
+ readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
+ readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
+ readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
+
+ updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
+ updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
+ writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
+ writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
+
+ //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
+ readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
+
+ nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
+ nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
+ nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
+ readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
+ readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
+ readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
+
+ updatedNb2AfterTimer := &entities.NodebInfo{RanName:"RanName_2", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
+ updatedNb3AfterTimer := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
+ writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
+ writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
+
+ expected := e2managererrors.NewRmrError()
+ mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize,"RanName" , &tests.DummyPayload, &tests.DummyXAction)
+ rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), tests.MaxMsgSize).Return(mbuf, expected)
+
+ actual := handler.Handle(log, nil)
+
+ if reflect.TypeOf(actual) != reflect.TypeOf(expected){
+ t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
+ }
+}
+
+func TestHandleGetListEnbIdsEmptyFlow(t *testing.T){
+ log := initLog(t)
+
+ readerMock := &mocks.RnibReaderMock{}
+ readerProvider := func() reader.RNibReader {
+ return readerMock
+ }
+ writerMock := &mocks.RnibWriterMock{}
+ writerProvider := func() rNibWriter.RNibWriter {
+ return writerMock
+ }
+ rmrMessengerMock := &mocks.RmrMessengerMock{}
+ config := configuration.ParseConfiguration()
+
+ handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider)