X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fdelete_all_request_handler_test.go;h=c61f0602587bcdc55b66c3eb079a7e26db94cfd6;hb=bcb124908ffd1de0c00868838bbac733b881fcb2;hp=aae73227c63b2098f422e9b39c6df71c5d5838f7;hpb=1ec13d4076e7c7abefac6176462c1fee31229213;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/httpmsghandlers/delete_all_request_handler_test.go b/E2Manager/handlers/httpmsghandlers/delete_all_request_handler_test.go index aae7322..c61f060 100644 --- a/E2Manager/handlers/httpmsghandlers/delete_all_request_handler_test.go +++ b/E2Manager/handlers/httpmsghandlers/delete_all_request_handler_test.go @@ -22,66 +22,54 @@ import ( "e2mgr/e2managererrors" "e2mgr/logger" "e2mgr/mocks" - "e2mgr/models" - "e2mgr/rNibWriter" "e2mgr/rmrCgo" "e2mgr/services" - "e2mgr/sessions" + "e2mgr/services/rmrsender" "e2mgr/tests" "fmt" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "reflect" "testing" ) -func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T){ +func setupTest(t *testing.T) (*logger.Logger, *configuration.Configuration, *mocks.RnibReaderMock, *mocks.RnibWriterMock, services.RNibDataService, *mocks.RmrMessengerMock) { log := initLog(t) + config := configuration.ParseConfiguration() readerMock := &mocks.RnibReaderMock{} - readerProvider := func() reader.RNibReader { - return readerMock - } + writerMock := &mocks.RnibWriterMock{} - writerProvider := func() rNibWriter.RNibWriter { - return writerMock - } + + rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock) rmrMessengerMock := &mocks.RmrMessengerMock{} + return log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock +} - config := configuration.ParseConfiguration() +func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T) { + log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t) - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) rnibErr := &common.ResourceNotFoundError{} var nbIdentityList []*entities.NbIdentity readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr) expected := &e2managererrors.RnibDbError{} - actual := handler.Handle(log, nil) - if reflect.TypeOf(actual) != reflect.TypeOf(expected){ + _, actual := handler.Handle(nil) + if reflect.TypeOf(actual) != reflect.TypeOf(expected) { t.Errorf("Error actual = %v, and Expected = %v.", actual, expected) } } -func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T){ - log := initLog(t) +func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) rnibErr := &common.ResourceNotFoundError{} //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown @@ -90,54 +78,44 @@ func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T){ readerMock.On("GetListNodebIds").Return(nbIdentityList, nil).Return(nbIdentityList, rnibErr) 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,} + 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,} + 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) expected := &e2managererrors.RnibDbError{} - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) - if reflect.TypeOf(actual) != reflect.TypeOf(expected){ + if reflect.TypeOf(actual) != reflect.TypeOf(expected) { t.Errorf("Error actual = %v, and Expected = %v.", actual, expected) } } -func TestHandleSuccessFlow(t *testing.T){ - log := initLog(t) +func TestHandleSuccessFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown nbIdentityList := createIdentityList() readerMock.On("GetListNodebIds").Return(nbIdentityList, nil) 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,} + 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,} + 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) @@ -145,40 +123,30 @@ func TestHandleSuccessFlow(t *testing.T){ 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,} + 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,} + 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) - 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, nil) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) assert.Nil(t, actual) } -func TestHandleSuccessGetNextStatusFlow(t *testing.T){ - log := initLog(t) +func TestHandleSuccessGetNextStatusFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}} readerMock.On("GetListNodebIds").Return(nbIdentityList, nil) @@ -186,7 +154,7 @@ func TestHandleSuccessGetNextStatusFlow(t *testing.T){ nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,} readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil) - updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,} + updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,} writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil) //after timer: ShutDown->Ignore, ShuttingDown->ShutDown @@ -195,32 +163,22 @@ func TestHandleSuccessGetNextStatusFlow(t *testing.T){ nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,} readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil) - updatedNb1AfterTimer := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,} + updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,} writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil) - 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, nil) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) assert.Nil(t, actual) } -func TestHandleShuttingDownStatusFlow(t *testing.T){ - log := initLog(t) +func TestHandleShuttingDownStatusFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}} readerMock.On("GetListNodebIds").Return(nbIdentityList, nil) @@ -234,32 +192,22 @@ func TestHandleShuttingDownStatusFlow(t *testing.T){ nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,} readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil) - updatedNb1AfterTimer := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,} + updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,} writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil) - 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, nil) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) assert.Nil(t, actual) } -func TestHandleGetNodebFailedFlow(t *testing.T){ - log := initLog(t) +func TestHandleGetNodebFailedFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) //Before timer: Disconnected->ShutDown(will fail), ShuttingDown->Ignore, Connected->ShuttingDown nbIdentityList := createIdentityList() @@ -267,14 +215,14 @@ func TestHandleGetNodebFailedFlow(t *testing.T){ errRnib := &common.ResourceNotFoundError{} 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,} + 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, errRnib) 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,} + 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(errRnib) writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil) @@ -282,55 +230,45 @@ func TestHandleGetNodebFailedFlow(t *testing.T){ 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,} + 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, errRnib) 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,} + 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) - 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, nil) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) assert.Nil(t, actual) } -func TestHandleSaveFailedFlow(t *testing.T){ - log := initLog(t) +func TestHandleSaveFailedFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail) nbIdentityList := createIdentityList() readerMock.On("GetListNodebIds").Return(nbIdentityList, nil) 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,} + 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) errRnib := &common.ResourceNotFoundError{} - updatedNb1 := &entities.NodebInfo{RanName:"RanName_1", ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,} - updatedNb3 := &entities.NodebInfo{RanName:"RanName_3", ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,} + 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(errRnib) @@ -338,54 +276,44 @@ func TestHandleSaveFailedFlow(t *testing.T){ 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,} + 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,} + 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(errRnib) - 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, nil) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) assert.Nil(t, actual) } -func TestHandleSendRmrFailedFlow(t *testing.T){ - log := initLog(t) +func TestHandleSendRmrFailedFlow(t *testing.T) { + log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(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() config.BigRedButtonTimeoutSec = 1 - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail) nbIdentityList := createIdentityList() readerMock.On("GetListNodebIds").Return(nbIdentityList, nil) 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,} + 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,} + 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) @@ -393,50 +321,39 @@ func TestHandleSendRmrFailedFlow(t *testing.T){ 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,} + 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,} + 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) + mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction) + rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, expected) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) - if reflect.TypeOf(actual) != reflect.TypeOf(expected){ + 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() +func TestHandleGetListEnbIdsEmptyFlow(t *testing.T) { + log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t) - handler := NewDeleteAllRequestHandler(getRmrService(rmrMessengerMock, log), config, writerProvider, readerProvider) + handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService) var rnibError error nbIdentityList := []*entities.NbIdentity{} readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError) - actual := handler.Handle(log, nil) + _, actual := handler.Handle(nil) readerMock.AssertNumberOfCalls(t, "GetNodeb", 0) assert.Nil(t, actual) } @@ -462,10 +379,8 @@ func initLog(t *testing.T) *logger.Logger { return log } - -func getRmrService(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *services.RmrService { +func getRmrSender(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *rmrsender.RmrSender { rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock) - messageChannel := make(chan *models.NotificationResponse) rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger) - return services.NewRmrService(services.NewRmrConfig(tests.Port, tests.MaxMsgSize, tests.Flags, log), rmrMessenger, make(sessions.E2Sessions), messageChannel) -} \ No newline at end of file + return rmrsender.NewRmrSender(log, rmrMessenger) +}