[RICPLT-2048] X2 ENDC Setup request refactoring
[ric-plt/e2mgr.git] / E2Manager / controllers / nodeb_controller_test.go
index ffa8d22..8334968 100644 (file)
@@ -26,22 +26,18 @@ import (
        "e2mgr/services"
        "e2mgr/sessions"
        "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/gorilla/mux"
        "github.com/pkg/errors"
        "github.com/stretchr/testify/assert"
-       "github.com/stretchr/testify/mock"
        "io/ioutil"
        "net/http"
        "net/http/httptest"
        "testing"
 )
 
-const x2SetupMessageType = "x2-setup"
-
 func TestNewRequestController(t *testing.T) {
        rnibReaderProvider := func() reader.RNibReader {
                return &mocks.RnibReaderMock{}
@@ -53,63 +49,6 @@ func TestNewRequestController(t *testing.T) {
        assert.NotNil(t, NewNodebController(&logger.Logger{}, &services.RmrService{}, rnibReaderProvider, rnibWriterProvider))
 }
 
-func TestHandleRequestSuccess(t *testing.T) {
-       log, err := logger.InitLogger(logger.InfoLevel)
-       if err != nil {
-               t.Errorf("#nodeb_controller_test.TestHandleRequestSuccess - failed to initialize logger, error: %s", err)
-       }
-
-       rmrMessengerMock := &mocks.RmrMessengerMock{}
-       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)
-
-       writer := httptest.NewRecorder()
-
-       handleRequest(writer, log, rmrMessengerMock, tests.GetHttpRequest(), x2SetupMessageType)
-       assert.Equal(t, http.StatusOK, writer.Result().StatusCode)
-}
-
-func TestHandleRequestFailure_InvalidRequestDetails(t *testing.T) {
-       log, err := logger.InitLogger(logger.InfoLevel)
-       if err != nil {
-               t.Errorf("#nodeb_controller_test.TestHandleRequestFailure - failed to initialize logger, error: %s", err)
-       }
-
-       rmrMessengerMock := &mocks.RmrMessengerMock{}
-       var mbuf *rmrCgo.MBuf
-
-       rmrMessengerMock.On("SendMsg",
-               mock.AnythingOfType(fmt.Sprintf("%T", mbuf)),
-               tests.MaxMsgSize).Return(mbuf, errors.New("test failure"))
-
-       writer := httptest.NewRecorder()
-
-       handleRequest(writer, log, rmrMessengerMock, tests.GetInvalidRequestDetails(), x2SetupMessageType)
-       assert.Equal(t, http.StatusBadRequest, writer.Result().StatusCode)
-}
-
-func TestHandleRequestFailure_InvalidMessageType(t *testing.T) {
-       log, err := logger.InitLogger(logger.InfoLevel)
-       if err != nil {
-               t.Errorf("#nodeb_controller_test.TestHandleRequestFailure - failed to initialize logger, error: %s", err)
-       }
-
-       rmrMessengerMock := &mocks.RmrMessengerMock{}
-       var mbuf *rmrCgo.MBuf
-
-       rmrMessengerMock.On("SendMsg",
-               mock.AnythingOfType(fmt.Sprintf("%T", mbuf)),
-               tests.MaxMsgSize).Return(mbuf, errors.New("test failure"))
-
-       writer := httptest.NewRecorder()
-
-       handleRequest(writer, log, rmrMessengerMock, tests.GetInvalidMessageType(), "dummy")
-       assert.Equal(t, http.StatusNotFound, writer.Result().StatusCode)
-}
-
 func TestHandleHealthCheckRequest(t *testing.T) {
        rc := NewNodebController(nil, nil, nil, nil)
        writer := httptest.NewRecorder()
@@ -117,30 +56,6 @@ func TestHandleHealthCheckRequest(t *testing.T) {
        assert.Equal(t, writer.Result().StatusCode, http.StatusOK)
 }
 
-func handleRequest(writer *httptest.ResponseRecorder, log *logger.Logger, rmrMessengerMock *mocks.RmrMessengerMock,
-       request *http.Request, messageType string) {
-       rmrService := getRmrService(rmrMessengerMock, log)
-       request = mux.SetURLVars(request, map[string]string{"messageType": messageType})
-
-       var nodebInfo *entities.NodebInfo
-       var nbIdentity *entities.NbIdentity
-
-       rnibWriterMock := mocks.RnibWriterMock{}
-       rnibWriterMock.On("SaveNodeb",
-               mock.AnythingOfType(fmt.Sprintf("%T", nbIdentity)),
-               mock.AnythingOfType(fmt.Sprintf("%T", nodebInfo))).Return(nil)
-
-       rnibReaderProvider := func() reader.RNibReader {
-               return &mocks.RnibReaderMock{}
-       }
-
-       rnibWriterProvider := func() rNibWriter.RNibWriter {
-               return &rnibWriterMock
-       }
-
-       NewNodebController(log, rmrService, rnibReaderProvider, rnibWriterProvider).HandleRequest(writer, request)
-}
-
 func getRmrService(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *services.RmrService {
        rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
        messageChannel := make(chan *models.NotificationResponse)
@@ -166,7 +81,7 @@ func TestNodebController_GetNodeb_Success(t *testing.T) {
 
        rnibReaderMock := mocks.RnibReaderMock{}
 
-       var rnibError common.IRNibError
+       var rnibError error
        rnibReaderMock.On("GetNodeb", "testNode").Return(&entities.NodebInfo{}, rnibError)
 
        rnibReaderProvider := func() reader.RNibReader {
@@ -188,7 +103,7 @@ func TestNodebController_GetNodeb_NotFound(t *testing.T) {
        writer := httptest.NewRecorder()
 
        rnibReaderMock := mocks.RnibReaderMock{}
-       rnibError := common.NewResourceNotFoundError(errors.Errorf("#reader.GetNodeb - responding node %s not found", "testNode"))
+       rnibError := common.NewResourceNotFoundErrorf("#reader.GetNodeb - responding node %s not found", "testNode")
        var nodebInfo *entities.NodebInfo
        rnibReaderMock.On("GetNodeb", "testNode").Return(nodebInfo, rnibError)
 
@@ -225,7 +140,7 @@ func TestNodebController_GetNodeb_InternalError(t *testing.T) {
 
 func executeGetNodebIdList(logger *logger.Logger, writer *httptest.ResponseRecorder, rnibReaderProvider func() reader.RNibReader) {
        req, _ := http.NewRequest("GET", "/nodeb-ids", nil)
-       NewNodebController(logger, nil, rnibReaderProvider, nil).GetNodebIdList(writer, req)
+       NewNodebController(logger, nil, rnibReaderProvider, nil ).GetNodebIdList(writer,req)
 }
 
 func TestNodebController_GetNodebIdList_Success(t *testing.T) {
@@ -238,13 +153,14 @@ func TestNodebController_GetNodebIdList_Success(t *testing.T) {
        writer := httptest.NewRecorder()
 
        rnibReaderMock := mocks.RnibReaderMock{}
-       var rnibError common.IRNibError
-
-       enbList := []*entities.NbIdentity{&entities.NbIdentity{InventoryName: "test1", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}}
-       gnbList := []*entities.NbIdentity{&entities.NbIdentity{InventoryName: "test2", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId2", NbId: "nbId2"}}}
+       var rnibError error
 
-       rnibReaderMock.On("GetListEnbIds").Return(&enbList, rnibError)
-       rnibReaderMock.On("GetListGnbIds").Return(&gnbList, rnibError)
+       nbList := []*entities.NbIdentity{
+               {InventoryName:"test1", GlobalNbId: &entities.GlobalNbId{PlmnId:"plmnId1",NbId: "nbId1"}},
+               {InventoryName:"test2", GlobalNbId: &entities.GlobalNbId{PlmnId:"plmnId2",NbId: "nbId2"}},
+               {InventoryName:"test3", GlobalNbId: &entities.GlobalNbId{PlmnId:"",NbId: ""}},
+       }
+       rnibReaderMock.On("GetListNodebIds").Return(nbList, rnibError)
 
        rnibReaderProvider := func() reader.RNibReader {
                return &rnibReaderMock
@@ -253,7 +169,7 @@ func TestNodebController_GetNodebIdList_Success(t *testing.T) {
        executeGetNodebIdList(logger, writer, rnibReaderProvider)
        assert.Equal(t, writer.Result().StatusCode, http.StatusOK)
        bodyBytes, err := ioutil.ReadAll(writer.Body)
-       assert.Equal(t, "[{\"inventoryName\":\"test1\",\"globalNbId\":{\"plmnId\":\"plmnId1\",\"nbId\":\"nbId1\"}},{\"inventoryName\":\"test2\",\"globalNbId\":{\"plmnId\":\"plmnId2\",\"nbId\":\"nbId2\"}}]", string(bodyBytes))
+       assert.Equal(t, "[{\"inventoryName\":\"test1\",\"globalNbId\":{\"plmnId\":\"plmnId1\",\"nbId\":\"nbId1\"}},{\"inventoryName\":\"test2\",\"globalNbId\":{\"plmnId\":\"plmnId2\",\"nbId\":\"nbId2\"}},{\"inventoryName\":\"test3\",\"globalNbId\":{}}]",string(bodyBytes) )
 }
 
 func TestNodebController_GetNodebIdList_EmptyList(t *testing.T) {
@@ -267,12 +183,10 @@ func TestNodebController_GetNodebIdList_EmptyList(t *testing.T) {
 
        rnibReaderMock := mocks.RnibReaderMock{}
 
-       var rnibError common.IRNibError
-       enbList := []*entities.NbIdentity{}
-       gnbList := []*entities.NbIdentity{}
+       var rnibError error
+       nbList := []*entities.NbIdentity{}
+       rnibReaderMock.On("GetListNodebIds").Return(nbList, rnibError)
 
-       rnibReaderMock.On("GetListEnbIds").Return(&enbList, rnibError)
-       rnibReaderMock.On("GetListGnbIds").Return(&gnbList, rnibError)
 
        rnibReaderProvider := func() reader.RNibReader {
                return &rnibReaderMock
@@ -297,8 +211,8 @@ func TestNodebController_GetNodebIdList_InternalError(t *testing.T) {
        rnibReaderMock := mocks.RnibReaderMock{}
 
        rnibError := common.NewInternalError(errors.New("#reader.GetEnbIdList - Internal Error"))
-       var enbList *[]*entities.NbIdentity
-       rnibReaderMock.On("GetListEnbIds").Return(enbList, rnibError)
+       var nbList []*entities.NbIdentity
+       rnibReaderMock.On("GetListNodebIds").Return(nbList, rnibError)
 
        rnibReaderProvider := func() reader.RNibReader {
                return &rnibReaderMock
@@ -306,60 +220,4 @@ func TestNodebController_GetNodebIdList_InternalError(t *testing.T) {
 
        executeGetNodebIdList(logger, writer, rnibReaderProvider)
        assert.Equal(t, writer.Result().StatusCode, http.StatusInternalServerError)
-}
-
-func TestNodebController_GetNodebIdList_Success_One(t *testing.T) {
-       logger, err := logger.InitLogger(logger.InfoLevel)
-
-       if err != nil {
-               t.Errorf("#nodeb_controller_test.TestNodebController_GetNodebIdList_Success - failed to initialize logger, error: %s", err)
-       }
-
-       writer := httptest.NewRecorder()
-
-       rnibReaderMock := mocks.RnibReaderMock{}
-       var rnibError common.IRNibError
-
-       enbList := []*entities.NbIdentity{}
-       gnbList := []*entities.NbIdentity{&entities.NbIdentity{InventoryName: "test2", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId2", NbId: "nbId2"}}}
-
-       rnibReaderMock.On("GetListEnbIds").Return(&enbList, rnibError)
-       rnibReaderMock.On("GetListGnbIds").Return(&gnbList, rnibError)
-
-       rnibReaderProvider := func() reader.RNibReader {
-               return &rnibReaderMock
-       }
-
-       executeGetNodebIdList(logger, writer, rnibReaderProvider)
-       assert.Equal(t, writer.Result().StatusCode, http.StatusOK)
-       bodyBytes, err := ioutil.ReadAll(writer.Body)
-       assert.Equal(t, "[{\"inventoryName\":\"test2\",\"globalNbId\":{\"plmnId\":\"plmnId2\",\"nbId\":\"nbId2\"}}]", string(bodyBytes))
-}
-
-func TestNodebController_GetNodebIdList_Success_Many(t *testing.T) {
-       logger, err := logger.InitLogger(logger.InfoLevel)
-
-       if err != nil {
-               t.Errorf("#nodeb_controller_test.TestNodebController_GetNodebIdList_Success - failed to initialize logger, error: %s", err)
-       }
-
-       writer := httptest.NewRecorder()
-
-       rnibReaderMock := mocks.RnibReaderMock{}
-       var rnibError common.IRNibError
-
-       enbList := []*entities.NbIdentity{&entities.NbIdentity{InventoryName: "test1", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}}
-       gnbList := []*entities.NbIdentity{&entities.NbIdentity{InventoryName: "test2", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId2", NbId: "nbId2"}}, {InventoryName: "test3", GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId3", NbId: "nbId3"}}}
-
-       rnibReaderMock.On("GetListEnbIds").Return(&enbList, rnibError)
-       rnibReaderMock.On("GetListGnbIds").Return(&gnbList, rnibError)
-
-       rnibReaderProvider := func() reader.RNibReader {
-               return &rnibReaderMock
-       }
-
-       executeGetNodebIdList(logger, writer, rnibReaderProvider)
-       assert.Equal(t, writer.Result().StatusCode, http.StatusOK)
-       bodyBytes, err := ioutil.ReadAll(writer.Body)
-       assert.Equal(t, "[{\"inventoryName\":\"test1\",\"globalNbId\":{\"plmnId\":\"plmnId1\",\"nbId\":\"nbId1\"}},{\"inventoryName\":\"test2\",\"globalNbId\":{\"plmnId\":\"plmnId2\",\"nbId\":\"nbId2\"}},{\"inventoryName\":\"test3\",\"globalNbId\":{\"plmnId\":\"plmnId3\",\"nbId\":\"nbId3\"}}]", string(bodyBytes))
-}
+}
\ No newline at end of file