RIC-193 - Setup from RAN fixes: Marshal XML Response, trim whitespaces, convert ricId...
[ric-plt/e2mgr.git] / E2Manager / controllers / nodeb_controller_test.go
index f819138..88983f4 100644 (file)
@@ -22,6 +22,7 @@ package controllers
 
 import (
        "bytes"
+       "e2mgr/clients"
        "e2mgr/configuration"
        "e2mgr/e2managererrors"
        "e2mgr/e2pdus"
@@ -65,7 +66,7 @@ type controllerGetNodebIdListTestContext struct {
        expectedJsonResponse string
 }
 
-func setupControllerTest(t *testing.T) (*NodebController, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock) {
+func  setupControllerTest(t *testing.T) (*NodebController, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.E2TInstancesManagerMock) {
        log := initLog(t)
        config := configuration.ParseConfiguration()
 
@@ -78,7 +79,10 @@ func setupControllerTest(t *testing.T) (*NodebController, *mocks.RnibReaderMock,
        rmrSender := getRmrSender(rmrMessengerMock, log)
        ranSetupManager := managers.NewRanSetupManager(log, rmrSender, rnibDataService)
        e2tInstancesManager := &mocks.E2TInstancesManagerMock{}
-       handlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(log, rmrSender, config, rnibDataService, ranSetupManager, e2tInstancesManager)
+       httpClientMock := &mocks.HttpClientMock{}
+       rmClient := clients.NewRoutingManagerClient(log, config, httpClientMock)
+       e2tAssociationManager := managers.NewE2TAssociationManager(log, rnibDataService, e2tInstancesManager, rmClient)
+       handlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(log, rmrSender, config, rnibDataService, ranSetupManager, e2tInstancesManager, e2tAssociationManager, rmClient)
        controller := NewNodebController(log, handlerProvider)
        return controller, readerMock, writerMock, rmrMessengerMock, e2tInstancesManager
 }
@@ -132,7 +136,6 @@ func TestX2SetupSuccess(t *testing.T) {
        assert.Equal(t, http.StatusNoContent, writer.Result().StatusCode)
 }
 
-
 func TestEndcSetupSuccess(t *testing.T) {
 
        controller, readerMock, writerMock, rmrMessengerMock, _ := setupControllerTest(t)
@@ -165,11 +168,8 @@ func TestEndcSetupSuccess(t *testing.T) {
 }
 
 func TestShutdownHandlerRnibError(t *testing.T) {
-       controller, readerMock, _, _, _ := setupControllerTest(t)
-
-       rnibErr := &common.ResourceNotFoundError{}
-       var nbIdentityList []*entities.NbIdentity
-       readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr)
+       controller, _, _, _, e2tInstancesManagerMock:= setupControllerTest(t)
+       e2tInstancesManagerMock.On("GetE2TAddresses").Return([]string{}, e2managererrors.NewRnibDbError())
 
        writer := httptest.NewRecorder()
 
@@ -308,11 +308,9 @@ func TestHeaderValidationFailed(t *testing.T) {
 }
 
 func TestShutdownStatusNoContent(t *testing.T) {
-       controller, readerMock, _, _, _ := setupControllerTest(t)
-
-       var rnibError error
-       nbIdentityList := []*entities.NbIdentity{}
-       readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError)
+       controller, readerMock, _, _, e2tInstancesManagerMock := setupControllerTest(t)
+       e2tInstancesManagerMock.On("GetE2TAddresses").Return([]string{}, nil)
+       readerMock.On("GetListNodebIds").Return([]*entities.NbIdentity{}, nil)
 
        writer := httptest.NewRecorder()
        controller.Shutdown(writer, tests.GetHttpRequest())
@@ -347,6 +345,19 @@ func TestHandleCommandAlreadyInProgressError(t *testing.T) {
        assert.Equal(t, errorResponse.Message, err.Message)
 }
 
+func TestHandleRoutingManagerError(t *testing.T) {
+       controller, _, _, _, _ := setupControllerTest(t)
+       writer := httptest.NewRecorder()
+       err := e2managererrors.NewRoutingManagerError()
+
+       controller.handleErrorResponse(err, writer)
+       var errorResponse = parseJsonRequest(t, writer.Body)
+
+       assert.Equal(t, http.StatusServiceUnavailable, writer.Result().StatusCode)
+       assert.Equal(t, errorResponse.Code, err.Code)
+       assert.Equal(t, errorResponse.Message, err.Message)
+}
+
 func TestHandleE2TInstanceAbsenceError(t *testing.T) {
        controller, _, _, _, _ := setupControllerTest(t)