+ ranName := "test"
+ nb := &entities.NodebInfo{RanName: ranName, ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, E2ApplicationProtocol: entities.E2ApplicationProtocol_ENDC_X2_SETUP_REQUEST, AssociatedE2TInstanceAddress: "10.0.2.15:8989"}
+ readerMock.On("GetNodeb", ranName).Return(nb, nil)
+ var nbUpdated = *nb
+ writerMock.On("UpdateNodebInfo", &nbUpdated).Return(nil)
+
+ var nbUpdated2 = &entities.NodebInfo{RanName: ranName, ConnectionStatus: entities.ConnectionStatus_CONNECTING, E2ApplicationProtocol: entities.E2ApplicationProtocol_ENDC_X2_SETUP_REQUEST, AssociatedE2TInstanceAddress: "10.0.2.15:8989"}
+ writerMock.On("UpdateNodebInfo", nbUpdated2).Return(nil)
+
+ payload := e2pdus.PackedEndcX2setupRequest
+ var xAction []byte
+ var msgSrc unsafe.Pointer
+ msg := rmrCgo.NewMBuf(rmrCgo.RIC_ENDC_X2_SETUP_REQ, len(payload), ranName, &payload, &xAction, msgSrc)
+
+ rmrMessengerMock.On("SendMsg", mock.Anything, true).Return(msg, nil)
+
+ header := http.Header{}
+ header.Set("Content-Type", "application/json")
+ httpRequest := tests.GetHttpRequest()
+ httpRequest.Header = header
+
+ writer := httptest.NewRecorder()
+ controller.EndcSetup(writer, httpRequest)
+
+ assert.Equal(t, http.StatusNoContent, writer.Result().StatusCode)
+}
+
+func TestShutdownHandlerRnibError(t *testing.T) {
+ controller, _, _, _, e2tInstancesManagerMock := setupControllerTest(t)
+ e2tInstancesManagerMock.On("GetE2TAddresses").Return([]string{}, e2managererrors.NewRnibDbError())
+
+ writer := httptest.NewRecorder()
+
+ controller.Shutdown(writer, tests.GetHttpRequest())
+
+ var errorResponse = parseJsonRequest(t, writer.Body)
+
+ assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
+ assert.Equal(t, errorResponse.Code, e2managererrors.NewRnibDbError().Code)
+}
+
+func controllerGetNodebTestExecuter(t *testing.T, context *controllerGetNodebTestContext) {
+ controller, readerMock, _, _, _ := setupControllerTest(t)
+ writer := httptest.NewRecorder()
+ readerMock.On("GetNodeb", context.ranName).Return(context.nodebInfo, context.rnibError)
+ req, _ := http.NewRequest(http.MethodGet, "/nodeb", nil)
+ req = mux.SetURLVars(req, map[string]string{"ranName": context.ranName})
+ controller.GetNodeb(writer, req)
+ assert.Equal(t, context.expectedStatusCode, writer.Result().StatusCode)
+ bodyBytes, _ := ioutil.ReadAll(writer.Body)
+ assert.Equal(t, context.expectedJsonResponse, string(bodyBytes))
+}
+
+func controllerGetNodebIdListTestExecuter(t *testing.T, context *controllerGetNodebIdListTestContext) {
+ controller, readerMock, _, _, _ := setupControllerTest(t)
+ writer := httptest.NewRecorder()
+ readerMock.On("GetListNodebIds").Return(context.nodebIdList, context.rnibError)
+ req, _ := http.NewRequest(http.MethodGet, "/nodeb/ids", nil)
+ controller.GetNodebIdList(writer, req)
+ assert.Equal(t, context.expectedStatusCode, writer.Result().StatusCode)
+ bodyBytes, _ := ioutil.ReadAll(writer.Body)
+ assert.Equal(t, context.expectedJsonResponse, string(bodyBytes))
+}
+
+func activateControllerUpdateGnbMocks(context *controllerUpdateGnbTestContext, readerMock *mocks.RnibReaderMock, writerMock *mocks.RnibWriterMock) {
+ if context.getNodebInfoResult != nil {
+ readerMock.On("GetNodeb", RanName).Return(context.getNodebInfoResult.nodebInfo, context.getNodebInfoResult.rnibError)