X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Frmrmsghandlers%2Fe2_reset_request_handler_test.go;h=25a815015cd8cab3e862d748496d4485dae28736;hb=9d035d0669de41cd4cb9e3e1f04b814486f72e3a;hp=56efae9c1fa30d2dc5f052df6fb1c410b41d3494;hpb=d39280d4e5f3b26c12be2f4ab3d829771c55fa7d;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go index 56efae9..25a8150 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go @@ -20,18 +20,16 @@ package rmrmsghandlers import ( "e2mgr/configuration" + "e2mgr/managers" "e2mgr/mocks" "e2mgr/models" "e2mgr/rmrCgo" - - // "e2mgr/rmrCgo" "e2mgr/services" "e2mgr/tests" "e2mgr/utils" "testing" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" - // "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -39,7 +37,7 @@ const ( E2ResetXmlPath = "../../tests/resources/reset/reset-request.xml" ) -func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock) { +func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.RanAlarmServiceMock) { logger := tests.InitLog(t) config := &configuration.Configuration{ RnibRetryIntervalMs: 10, @@ -53,13 +51,18 @@ func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks. readerMock := &mocks.RnibReaderMock{} writerMock := &mocks.RnibWriterMock{} rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock) - handler := NewE2ResetRequestNotificationHandler(logger, rnibDataService, config, rmrSender) - return handler, readerMock, writerMock, rmrMessengerMock + ranListManager := managers.NewRanListManager(logger, rnibDataService) + ranAlarmService := &mocks.RanAlarmServiceMock{} + ranConnectStatusChangeManager := managers.NewRanConnectStatusChangeManager(logger, rnibDataService, ranListManager, ranAlarmService) + ranResetManager := managers.NewRanResetManager(logger, rnibDataService, ranConnectStatusChangeManager) + changeStatusToConnectedRanManager := managers.NewChangeStatusToConnectedRanManager(logger, rnibDataService, ranConnectStatusChangeManager) + handler := NewE2ResetRequestNotificationHandler(logger, rnibDataService, config, rmrSender, ranResetManager, changeStatusToConnectedRanManager) + return handler, readerMock, writerMock, rmrMessengerMock, ranAlarmService } func TestE2ResettNotificationHandler(t *testing.T) { e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2ResetMocks(t) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -71,19 +74,55 @@ func TestE2ResettNotificationHandler(t *testing.T) { } readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) writerMock.On("UpdateNodebInfoAndPublish", mock.Anything).Return(nil) + var rnibErr error + writerMock.On("UpdateNodebInfo", mock.Anything).Return(rnibErr) var errEmpty error rmrMessage := &rmrCgo.MBuf{} rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} handler.Handle(notificationRequest) readerMock.AssertExpectations(t) writerMock.AssertExpectations(t) - rmrMessengerMock.AssertNotCalled(t, "SendMsg") + rmrMessengerMock.AssertCalled(t, "SendMsg", mock.Anything, true) + } func TestE2ResettNotificationHandler_UpdateStatus_Connected(t *testing.T) { e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2ResetMocks(t) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) + var nodebInfo = &entities.NodebInfo{ + RanName: gnbNodebRanName, + AssociatedE2TInstanceAddress: e2tInstanceFullAddress, + ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, + NodeType: entities.Node_GNB, + Configuration: &entities.NodebInfo_Gnb{ + Gnb: &entities.Gnb{}, + }, + } + readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) + writerMock.On("UpdateNodebInfoAndPublish", mock.Anything).Return(nil) + var rnibErr error + writerMock.On("UpdateNodebInfo", mock.Anything).Return(rnibErr) + nodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED + readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) + + var errEmpty error + rmrMessage := &rmrCgo.MBuf{} + rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) + notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} + handler.Handle(notificationRequest) + readerMock.AssertCalled(t, "GetNodeb", mock.Anything) + writerMock.AssertCalled(t, "UpdateNodebInfoAndPublish", mock.Anything) + readerMock.AssertCalled(t, "GetNodeb", mock.Anything) +} + +func TestE2ResettNotificationHandler_Successful_Reset_Response(t *testing.T) { + e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -95,12 +134,16 @@ func TestE2ResettNotificationHandler_UpdateStatus_Connected(t *testing.T) { } readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) writerMock.On("UpdateNodebInfoAndPublish", mock.Anything).Return(nil) + var rnibErr error + writerMock.On("UpdateNodebInfo", mock.Anything).Return(rnibErr) nodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) var errEmpty error rmrMessage := &rmrCgo.MBuf{} rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} handler.Handle(notificationRequest) readerMock.AssertCalled(t, "GetNodeb", mock.Anything)