X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=ric-plt%2Fresource-status-manager.git;a=blobdiff_plain;f=RSM%2Fmanagers%2Fresource_status_initiate_manager_test.go;fp=RSM%2Fmanagers%2Fresource_status_initiate_manager_test.go;h=0000000000000000000000000000000000000000;hp=a8cea623fbe1aeeb86a2b9e06f06994c28b51b44;hb=60652d98d51ee23c1eaca2e8bc2bf19c74c57658;hpb=b8d3ff3abf409da49ecab244cd6d2c2124dbce7c diff --git a/RSM/managers/resource_status_initiate_manager_test.go b/RSM/managers/resource_status_initiate_manager_test.go deleted file mode 100644 index a8cea62..0000000 --- a/RSM/managers/resource_status_initiate_manager_test.go +++ /dev/null @@ -1,224 +0,0 @@ -package managers - -import ( - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common" - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "rsm/configuration" - "rsm/e2pdus" - "rsm/enums" - "rsm/logger" - "rsm/mocks" - "rsm/rmrcgo" - "rsm/rsmerrors" - "rsm/services" - "rsm/tests/testhelper" - "testing" - "time" -) - -const RanName = "test" - -func initResourceStatusInitiateManagerTest(t *testing.T) (*mocks.RmrMessengerMock, *mocks.RnibReaderMock, *e2pdus.ResourceStatusRequestData, *ResourceStatusInitiateManager) { - logger, err := logger.InitLogger(logger.InfoLevel) - if err != nil { - t.Errorf("#... - failed to initialize logger, error: %s", err) - } - - config, err := configuration.ParseConfiguration() - if err != nil { - t.Errorf("#... - failed to parse configuration error: %s", err) - } - - rmrMessengerMock := &mocks.RmrMessengerMock{} - rmrSender := testhelper.InitRmrSender(rmrMessengerMock, logger) - - readerMock := &mocks.RnibReaderMock{} - rnibReaderProvider := func() reader.RNibReader { - return readerMock - } - - resourceStatusRequestData := &e2pdus.ResourceStatusRequestData{} - populateResourceStatusInitiateRequestParams(resourceStatusRequestData, config) - - rnibDataService := services.NewRnibDataService(logger, config, rnibReaderProvider) - resourceStatusInitiateManager := NewResourceStatusInitiateManager(logger, rnibDataService, rmrSender) - return rmrMessengerMock, readerMock, resourceStatusRequestData, resourceStatusInitiateManager -} - -func TestGetNodebFailure(t *testing.T) { - rmrMessengerMock, readerMock, resourceStatusInitiateRequestParams, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - var nodebInfo *entities.NodebInfo - readerMock.On("GetNodeb", RanName).Return(nodebInfo, common.NewInternalError(errors.New("Error"))) - err := resourceStatusInitiateManager.Execute(RanName, resourceStatusInitiateRequestParams) - readerMock.AssertCalled(t, "GetNodeb", RanName) - assert.IsType(t, &rsmerrors.RnibDbError{}, err) - rmrMessengerMock.AssertNotCalled(t, "SendMsg") -} - -func TestInvalidConnectionStatus(t *testing.T) { - rmrMessengerMock, readerMock, resourceStatusInitiateRequestParams, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - var err error - readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{ConnectionStatus: entities.ConnectionStatus_DISCONNECTED}, err) - err = resourceStatusInitiateManager.Execute(RanName, resourceStatusInitiateRequestParams) - readerMock.AssertCalled(t, "GetNodeb", RanName) - assert.IsType(t, &rsmerrors.WrongStateError{}, err) - rmrMessengerMock.AssertNotCalled(t, "SendMsg") -} - -func TestPackFailure(t *testing.T) { - rmrMessengerMock, readerMock, resourceRequestData, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - var err error - nodebInfo := &entities.NodebInfo{ - RanName: RanName, - ConnectionStatus: entities.ConnectionStatus_CONNECTED, - Configuration: &entities.NodebInfo_Enb{ - Enb: &entities.Enb{ - ServedCells: []*entities.ServedCellInfo{{CellId: ""}}, - }, - }, - } - - readerMock.On("GetNodeb", RanName).Return(nodebInfo, err) - err = resourceStatusInitiateManager.Execute(RanName, resourceRequestData) - assert.Nil(t, err) - readerMock.AssertCalled(t, "GetNodeb", RanName) - rmrMessengerMock.AssertNotCalled(t, "SendMsg") -} - -func TestOneCellSuccess(t *testing.T) { - cellId := "02f829:0007ab00" - rmrMessengerMock, readerMock, resourceRequestData, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - xaction := []byte(RanName) - var err error - nodebInfo := &entities.NodebInfo{ - RanName: RanName, - ConnectionStatus: entities.ConnectionStatus_CONNECTED, - Configuration: &entities.NodebInfo_Enb{ - Enb: &entities.Enb{ - ServedCells: []*entities.ServedCellInfo{{CellId: cellId}}, - }, - }, - } - - readerMock.On("GetNodeb", RanName).Return(nodebInfo, err) - expectedPayload := getPackedPayloadForCell(cellId, 1, *resourceRequestData) - expectedMbuf := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload), RanName, &expectedPayload, &xaction) - rmrMessengerMock.On("SendMsg", expectedMbuf).Return(&rmrcgo.MBuf{}, err) - err = resourceStatusInitiateManager.Execute(RanName, resourceRequestData) - time.Sleep(100 * time.Millisecond) - readerMock.AssertCalled(t, "GetNodeb", RanName) - assert.Nil(t, err) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf) - rmrMessengerMock.AssertNumberOfCalls(t, "SendMsg", 1) -} - -func TestTwoCellOneFailureOneSuccess(t *testing.T) { - cellId1 := "02f829:0007ab00" - cellId2 := "02f829:0007ab50" - rmrMessengerMock, readerMock, resourceRequestData, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - xaction := []byte(RanName) - var err error - nodebInfo := &entities.NodebInfo{ - RanName: RanName, - ConnectionStatus: entities.ConnectionStatus_CONNECTED, - Configuration: &entities.NodebInfo_Enb{ - Enb: &entities.Enb{ - ServedCells: []*entities.ServedCellInfo{{CellId: cellId1}, {CellId: cellId2}}, - }, - }, - } - - readerMock.On("GetNodeb", RanName).Return(nodebInfo, err) - expectedPayload1 := getPackedPayloadForCell(cellId1, 1, *resourceRequestData) - expectedMbuf1 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload1), RanName, &expectedPayload1, &xaction) - - expectedPayload2 := getPackedPayloadForCell(cellId2, 2, *resourceRequestData) - expectedMbuf2 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload2), RanName, &expectedPayload2, &xaction) - rmrMessengerMock.On("SendMsg", expectedMbuf1).Return(&rmrcgo.MBuf{}, rsmerrors.NewRmrError()) - rmrMessengerMock.On("SendMsg", expectedMbuf2).Return(&rmrcgo.MBuf{}, err) - err = resourceStatusInitiateManager.Execute(RanName, resourceRequestData) - time.Sleep(100 * time.Millisecond) - readerMock.AssertCalled(t, "GetNodeb", RanName) - assert.Nil(t, err) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf1) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf2) - rmrMessengerMock.AssertNumberOfCalls(t, "SendMsg", 2) -} - -func TestFiveCellsSuccess(t *testing.T) { - cellId1 := "02f829:0007ab00" - cellId2 := "02f829:0007ab50" - cellId3 := "02f829:0007ab60" - cellId4 := "02f829:0007ab70" - cellId5 := "02f829:0007ab80" - - rmrMessengerMock, readerMock, resourceRequestData, resourceStatusInitiateManager := initResourceStatusInitiateManagerTest(t) - xaction := []byte(RanName) - var err error - nodebInfo := &entities.NodebInfo{ - RanName: RanName, - ConnectionStatus: entities.ConnectionStatus_CONNECTED, - Configuration: &entities.NodebInfo_Enb{ - Enb: &entities.Enb{ - ServedCells: []*entities.ServedCellInfo{{CellId: cellId1}, {CellId: cellId2}, {CellId: cellId3}, {CellId: cellId4}, {CellId: cellId5}}, - }, - }, - } - - readerMock.On("GetNodeb", RanName).Return(nodebInfo, err) - expectedPayload1 := getPackedPayloadForCell(cellId1, 1, *resourceRequestData) - expectedMbuf1 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload1), RanName, &expectedPayload1, &xaction) - - expectedPayload2 := getPackedPayloadForCell(cellId2, 2, *resourceRequestData) - expectedMbuf2 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload2), RanName, &expectedPayload2, &xaction) - - expectedPayload3 := getPackedPayloadForCell(cellId3, 3, *resourceRequestData) - expectedMbuf3 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload3), RanName, &expectedPayload3, &xaction) - - expectedPayload4 := getPackedPayloadForCell(cellId4, 4, *resourceRequestData) - expectedMbuf4 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload4), RanName, &expectedPayload4, &xaction) - - expectedPayload5 := getPackedPayloadForCell(cellId5, 5, *resourceRequestData) - expectedMbuf5 := rmrcgo.NewMBuf(rmrcgo.RicResStatusReq, len(expectedPayload5), RanName, &expectedPayload5, &xaction) - - rmrMessengerMock.On("SendMsg", expectedMbuf1).Return(&rmrcgo.MBuf{}, err) - rmrMessengerMock.On("SendMsg", expectedMbuf2).Return(&rmrcgo.MBuf{}, err) - rmrMessengerMock.On("SendMsg", expectedMbuf3).Return(&rmrcgo.MBuf{}, err) - rmrMessengerMock.On("SendMsg", expectedMbuf4).Return(&rmrcgo.MBuf{}, err) - rmrMessengerMock.On("SendMsg", expectedMbuf5).Return(&rmrcgo.MBuf{}, err) - - err = resourceStatusInitiateManager.Execute(RanName, resourceRequestData) - time.Sleep(100 * time.Millisecond) - readerMock.AssertCalled(t, "GetNodeb", RanName) - assert.Nil(t, err) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf1) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf2) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf3) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf4) - rmrMessengerMock.AssertCalled(t, "SendMsg", expectedMbuf5) - - rmrMessengerMock.AssertNumberOfCalls(t, "SendMsg", 5) -} - -func getPackedPayloadForCell(cellId string, index int, resourceStatusRequestData e2pdus.ResourceStatusRequestData) []byte { - resourceStatusRequestData.CellID = cellId - resourceStatusRequestData.MeasurementID = e2pdus.Measurement_ID(index) - expectedPayload, _, _ := e2pdus.BuildPackedResourceStatusRequest(enums.Registration_Request_start, &resourceStatusRequestData, e2pdus.MaxAsn1PackedBufferSize, e2pdus.MaxAsn1CodecMessageBufferSize, false) - return expectedPayload -} - -func populateResourceStatusInitiateRequestParams(params *e2pdus.ResourceStatusRequestData, config *configuration.Configuration) { - params.PartialSuccessAllowed = config.ResourceStatusParams.PartialSuccessAllowed - params.PrbPeriodic = config.ResourceStatusParams.PrbPeriodic - params.TnlLoadIndPeriodic = config.ResourceStatusParams.TnlLoadIndPeriodic - params.HwLoadIndPeriodic = config.ResourceStatusParams.HwLoadIndPeriodic - params.AbsStatusPeriodic = config.ResourceStatusParams.AbsStatusPeriodic - params.RsrpMeasurementPeriodic = config.ResourceStatusParams.RsrpMeasurementPeriodic - params.CsiPeriodic = config.ResourceStatusParams.CsiPeriodic - params.PeriodicityMS = config.ResourceStatusParams.PeriodicityMs - params.PeriodicityRsrpMeasurementMS = config.ResourceStatusParams.PeriodicityRsrpMeasurementMs - params.PeriodicityCsiMS = config.ResourceStatusParams.PeriodicityCsiMs -}