X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Frmrmsghandlers%2Fe2_setup_request_notification_handler_test.go;h=2e2c69338961e9dc654309fa1efb0204cbaef4e3;hb=dc8932a553fabccf33b5cbb4e37084362493dbcf;hp=9cddbe2791b867cc7015087dff56c872e09e6f13;hpb=7f26175458e8a5669924f08a111f7d0d3bead685;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go b/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go index 9cddbe2..2e2c693 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go @@ -159,54 +159,58 @@ func TestE2SetupRequestNotificationHandler_EnableRicFalse(t *testing.T) { writerMock.AssertNotCalled(t, "SaveNodeb") } -func testE2SetupRequestNotificationHandler_HandleNewRanSuccess(t *testing.T, xmlPath string) { - xml := readXmlFile(t, xmlPath) - handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t) + +func TestE2SetupRequestNotificationHandler_HandleNewRanError(t *testing.T) { + xml := readXmlFile(t, GnbSetupRequestXmlPath) + handler, readerMock, writerMock, _, e2tInstancesManagerMock, _ := initMocks(t) readerMock.On("GetGeneralConfiguration").Return(&entities.GeneralConfiguration{EnableRic: true}, nil) e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(&entities.E2TInstance{}, nil) var gnb *entities.NodebInfo readerMock.On("GetNodeb", nodebRanName).Return(gnb, common.NewResourceNotFoundError("Not found")) notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append([]byte(e2SetupMsgPrefix), xml...)} nodebInfo := getExpectedNodebForNewRan(notificationRequest.Payload) - nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} - writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil) - updatedNodebInfo := *nodebInfo - updatedNodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo, StateChangeMessageChannel, nodebRanName+"_CONNECTED").Return(nil) - routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil) - updatedNodebInfo2 := *nodebInfo - updatedNodebInfo2.ConnectionStatus = entities.ConnectionStatus_CONNECTED - updatedNodebInfo2.AssociatedE2TInstanceAddress = e2tInstanceFullAddress - writerMock.On("UpdateNodebInfo", &updatedNodebInfo2).Return(nil) - e2tInstancesManagerMock.On("AddRansToInstance", e2tInstanceFullAddress, []string{nodebRanName}).Return(nil) - rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(&rmrCgo.MBuf{}, nil) + writerMock.On("SaveNodeb", nodebInfo).Return(common.NewInternalError(errors.New("error"))) + //nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} + // TODO: add writerMock.On("AddNbIdentity") handler.Handle(notificationRequest) + readerMock.AssertExpectations(t) writerMock.AssertExpectations(t) e2tInstancesManagerMock.AssertExpectations(t) } -func TestE2SetupRequestNotificationHandler_HandleUpdateNodebInfoOnConnectionStatusInversionFailureForNewGnb(t *testing.T) { - xml := readXmlFile(t, GnbSetupRequestXmlPath) - handler, readerMock, writerMock, _, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t) +func testE2SetupRequestNotificationHandler_HandleNewRanSuccess(t *testing.T, xmlPath string) { + xml := readXmlFile(t, xmlPath) + handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t) readerMock.On("GetGeneralConfiguration").Return(&entities.GeneralConfiguration{EnableRic: true}, nil) e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(&entities.E2TInstance{}, nil) var gnb *entities.NodebInfo readerMock.On("GetNodeb", nodebRanName).Return(gnb, common.NewResourceNotFoundError("Not found")) notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append([]byte(e2SetupMsgPrefix), xml...)} nodebInfo := getExpectedNodebForNewRan(notificationRequest.Payload) - nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} - writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil) + writerMock.On("SaveNodeb", nodebInfo).Return(nil) + //nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} + // TODO: add writerMock.On("AddNbIdentity") updatedNodebInfo := *nodebInfo updatedNodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo, StateChangeMessageChannel, nodebRanName+"_CONNECTED").Return(common.NewInternalError(errors.New("some error"))) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo, nodebRanName+"_CONNECTED").Return(nil) + routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil) + updatedNodebInfo2 := *nodebInfo + updatedNodebInfo2.ConnectionStatus = entities.ConnectionStatus_CONNECTED + updatedNodebInfo2.AssociatedE2TInstanceAddress = e2tInstanceFullAddress + writerMock.On("UpdateNodebInfo", &updatedNodebInfo2).Return(nil) + e2tInstancesManagerMock.On("AddRansToInstance", e2tInstanceFullAddress, []string{nodebRanName}).Return(nil) + rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(&rmrCgo.MBuf{}, nil) + handler.Handle(notificationRequest) + readerMock.AssertExpectations(t) writerMock.AssertExpectations(t) - routingManagerClientMock.AssertExpectations(t) e2tInstancesManagerMock.AssertExpectations(t) } + + func TestE2SetupRequestNotificationHandler_HandleNewGnbSuccess(t *testing.T) { testE2SetupRequestNotificationHandler_HandleNewRanSuccess(t, GnbSetupRequestXmlPath) } @@ -287,7 +291,7 @@ func TestE2SetupRequestNotificationHandler_HandleExistingDisconnectedGnbSuccess( writerMock.On("UpdateNodebInfo", gnbToUpdate).Return(nil) gnbToUpdate2 := *gnbToUpdate gnbToUpdate2.ConnectionStatus = entities.ConnectionStatus_CONNECTED - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &gnbToUpdate2, StateChangeMessageChannel, nodebRanName+"_CONNECTED").Return(nil) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &gnbToUpdate2, nodebRanName+"_CONNECTED").Return(nil) gnbToUpdate3 := *gnbToUpdate gnbToUpdate3.ConnectionStatus = entities.ConnectionStatus_CONNECTED gnbToUpdate3.AssociatedE2TInstanceAddress = e2tInstanceFullAddress @@ -405,16 +409,16 @@ func TestE2SetupRequestNotificationHandler_HandleAssociationError(t *testing.T) readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found")) notificationRequest := &models.NotificationRequest{RanName: nodebRanName, Payload: append([]byte(e2SetupMsgPrefix), xmlGnb...)} nodebInfo := getExpectedNodebForNewRan(notificationRequest.Payload) - writerMock.On("SaveNodeb", mock.Anything, nodebInfo).Return(nil) + writerMock.On("SaveNodeb", nodebInfo).Return(nil) updatedNodebInfo := *nodebInfo updatedNodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo, StateChangeMessageChannel, nodebRanName+"_CONNECTED").Return(nil) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo, nodebRanName+"_CONNECTED").Return(nil) writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil) e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil) routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(errors.New("association error")) updatedNodebInfo2 := *nodebInfo updatedNodebInfo2.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo2, StateChangeMessageChannel, nodebRanName+"_DISCONNECTED").Return(nil) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNodebInfo2, nodebRanName+"_DISCONNECTED").Return(nil) var errEmpty error mbuf := getMbuf(rmrCgo.RIC_E2_SETUP_FAILURE, E2SetupFailureResponseWithTransportCause, notificationRequest) rmrMessengerMock.On("WhSendMsg", mbuf, true).Return(&rmrCgo.MBuf{}, errEmpty) @@ -433,7 +437,9 @@ func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing. config := &configuration.Configuration{ RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, - StateChangeMessageChannel: StateChangeMessageChannel, + RnibWriter: configuration.RnibWriterConfig{ + StateChangeMessageChannel: StateChangeMessageChannel, + }, GlobalRicId: struct { RicId string Mcc string @@ -446,7 +452,7 @@ func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing. routingManagerClientMock := &mocks.RoutingManagerClientMock{} rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock) e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{} - ranListManager := managers.NewRanListManager(logger) + ranListManager := managers.NewRanListManager(logger, rnibDataService) ranAlarmService := services.NewRanAlarmService(logger, config) ranConnectStatusChangeManager := managers.NewRanConnectStatusChangeManager(logger, rnibDataService, ranListManager, ranAlarmService) @@ -457,7 +463,7 @@ func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing. var gnb *entities.NodebInfo readerMock.On("GetNodeb", mock.Anything).Return(gnb, common.NewResourceNotFoundError("Not found")) writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil) - writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, StateChangeMessageChannel, mock.Anything).Return(nil) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) routingManagerClientMock.On("AssociateRanToE2TInstance", e2tInstanceFullAddress, mock.Anything).Return(nil) writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil) e2tInstancesManagerMock.On("AddRansToInstance", mock.Anything, mock.Anything).Return(nil) @@ -500,7 +506,9 @@ func initMocks(t *testing.T) (*E2SetupRequestNotificationHandler, *mocks.RnibRea config := &configuration.Configuration{ RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, - StateChangeMessageChannel: StateChangeMessageChannel, + RnibWriter: configuration.RnibWriterConfig{ + StateChangeMessageChannel: StateChangeMessageChannel, + }, GlobalRicId: struct { RicId string Mcc string @@ -513,7 +521,7 @@ func initMocks(t *testing.T) (*E2SetupRequestNotificationHandler, *mocks.RnibRea routingManagerClientMock := &mocks.RoutingManagerClientMock{} rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock) e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{} - ranListManager := managers.NewRanListManager(logger) + ranListManager := managers.NewRanListManager(logger, rnibDataService) ranAlarmService := services.NewRanAlarmService(logger, config) ranConnectStatusChangeManager := managers.NewRanConnectStatusChangeManager(logger, rnibDataService, ranListManager, ranAlarmService) e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock, ranConnectStatusChangeManager)