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=a52e8f5f698c2899dc49eb32ce2c97a902928a10;hb=refs%2Fchanges%2F91%2F4391%2F1;hp=1bbf66f4de37bee744f87560800ab662ee46c6ea;hpb=14eb5132c3dca8cdad98e7e5420701b04f452046;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 1bbf66f..a52e8f5 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go @@ -160,7 +160,7 @@ func TestE2SetupRequestNotificationHandler_EnableRicFalse(t *testing.T) { } -func TestE2SetupRequestNotificationHandler_HandleNewRanError(t *testing.T) { +func TestE2SetupRequestNotificationHandler_HandleNewRanSaveNodebFailure(t *testing.T) { xml := readXmlFile(t, GnbSetupRequestXmlPath) handler, readerMock, writerMock, _, e2tInstancesManagerMock, _ := initMocks(t) readerMock.On("GetGeneralConfiguration").Return(&entities.GeneralConfiguration{EnableRic: true}, nil) @@ -169,9 +169,7 @@ func TestE2SetupRequestNotificationHandler_HandleNewRanError(t *testing.T) { 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(common.NewInternalError(errors.New("error"))) - + writerMock.On("SaveNodeb", nodebInfo).Return(common.NewInternalError(errors.New("error"))) handler.Handle(notificationRequest) readerMock.AssertExpectations(t) @@ -179,56 +177,56 @@ func TestE2SetupRequestNotificationHandler_HandleNewRanError(t *testing.T) { e2tInstancesManagerMock.AssertExpectations(t) } -func testE2SetupRequestNotificationHandler_HandleNewRanSuccess(t *testing.T, xmlPath string) { - xml := readXmlFile(t, xmlPath) - handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock := initMocks(t) +func TestE2SetupRequestNotificationHandler_HandleNewRanAddNbIdentityFailure(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) + writerMock.On("SaveNodeb", nodebInfo).Return(nil) 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("AddNbIdentity", entities.Node_GNB, nbIdentity).Return(common.NewInternalError(errors.New("error"))) 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) + writerMock.On("SaveNodeb", nodebInfo).Return(nil) nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} - writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil) + writerMock.On("AddNbIdentity", entities.Node_GNB, nbIdentity).Return(nil) 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) } @@ -309,7 +307,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 @@ -427,16 +425,18 @@ 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) + nbIdentity := &entities.NbIdentity{InventoryName: nodebRanName, GlobalNbId: nodebInfo.GlobalNbId} + writerMock.On("AddNbIdentity", entities.Node_GNB, nbIdentity).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) @@ -470,18 +470,19 @@ 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) e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManagerMock, routingManagerClientMock, ranConnectStatusChangeManager) - handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager, ranConnectStatusChangeManager) + handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager, ranConnectStatusChangeManager, ranListManager) readerMock.On("GetGeneralConfiguration").Return(&entities.GeneralConfiguration{EnableRic: true}, nil) e2tInstancesManagerMock.On("GetE2TInstance", e2tInstanceFullAddress).Return(&entities.E2TInstance{}, nil) 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("AddNbIdentity", entities.Node_GNB, 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) @@ -539,10 +540,10 @@ 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) - handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager, ranConnectStatusChangeManager) + handler := NewE2SetupRequestNotificationHandler(logger, config, e2tInstancesManagerMock, rmrSender, rnibDataService, e2tAssociationManager, ranConnectStatusChangeManager, ranListManager) return handler, readerMock, writerMock, rmrMessengerMock, e2tInstancesManagerMock, routingManagerClientMock }