sync R3 content from Azure
[ric-plt/e2mgr.git] / E2Manager / handlers / httpmsghandlers / delete_all_request_handler_test.go
index aae7322..c61f060 100644 (file)
@@ -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)
+}