1 package notificationmanager
9 "e2mgr/providers/rmrmsghandlerprovider"
13 "e2mgr/services/rmrsender"
16 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
17 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
18 "github.com/stretchr/testify/assert"
22 func initNotificationManagerTest(t *testing.T) (*logger.Logger, *mocks.RnibReaderMock, *NotificationManager) {
24 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
26 readerMock := &mocks.RnibReaderMock{}
27 rnibReaderProvider := func() reader.RNibReader {
30 writerMock := &mocks.RnibWriterMock{}
31 rnibWriterProvider := func() rNibWriter.RNibWriter {
35 rmrSender := initRmrSender(&mocks.RmrMessengerMock{}, logger)
36 rnibDataService := services.NewRnibDataService(logger, config, rnibReaderProvider, rnibWriterProvider)
37 ranSetupManager := managers.NewRanSetupManager(logger, rmrSender, rnibDataService)
38 ranReconnectionManager := managers.NewRanReconnectionManager(logger, configuration.ParseConfiguration(), rnibDataService, ranSetupManager)
39 ranStatusChangeManager := managers.NewRanStatusChangeManager(logger, rmrSender)
40 x2SetupResponseConverter := converters.NewX2SetupResponseConverter(logger)
41 x2SetupResponseManager := managers.NewX2SetupResponseManager(x2SetupResponseConverter)
42 x2SetupFailureResponseConverter := converters.NewX2SetupFailureResponseConverter(logger)
43 x2SetupFailureResponseManager := managers.NewX2SetupFailureResponseManager(x2SetupFailureResponseConverter)
44 rmrNotificationHandlerProvider := rmrmsghandlerprovider.NewNotificationHandlerProvider(logger, rnibDataService, ranReconnectionManager, ranStatusChangeManager, rmrSender, x2SetupResponseManager, x2SetupFailureResponseManager)
45 notificationManager := NewNotificationManager(logger, rmrNotificationHandlerProvider )
46 return logger, readerMock, notificationManager
49 func TestHandleMessageUnexistingMessageType(t *testing.T) {
50 _, _, nm := initNotificationManagerTest(t)
52 mbuf := &rmrCgo.MBuf{MType: 1234}
54 err := nm.HandleMessage(mbuf)
58 func TestHandleMessageExistingMessageType(t *testing.T) {
59 _, readerMock, nm := initNotificationManagerTest(t)
60 payload := []byte("123")
61 xaction := []byte("test")
62 mbuf := &rmrCgo.MBuf{MType: rmrCgo.RIC_X2_SETUP_RESP, Meid: "test", Payload: &payload, XAction: &xaction}
63 readerMock.On("GetNodeb", "test").Return(&entities.NodebInfo{}, fmt.Errorf("Some error"))
64 err := nm.HandleMessage(mbuf)
68 // TODO: extract to test_utils
69 func initRmrSender(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *rmrsender.RmrSender {
70 rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
71 rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
72 return rmrsender.NewRmrSender(log, &rmrMessenger)
75 // TODO: extract to test_utils
76 func initLog(t *testing.T) *logger.Logger {
77 log, err := logger.InitLogger(logger.InfoLevel)
79 t.Errorf("#delete_all_request_handler_test.TestHandleSuccessFlow - failed to initialize logger, error: %s", err)