"e2mgr/models"
"e2mgr/services"
"encoding/json"
+ "fmt"
+ "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
func initE2TAssociationManagerTest(t *testing.T) (*E2TAssociationManager, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.HttpClientMock) {
log := initLog(t)
- config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, StateChangeMessageChannel: StateChangeMessageChannel}
+ config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, RnibWriter: configuration.RnibWriterConfig{ StateChangeMessageChannel: StateChangeMessageChannel}}
readerMock := &mocks.RnibReaderMock{}
writerMock := &mocks.RnibWriterMock{}
e2tInstancesManager := NewE2TInstancesManager(rnibDataService, log)
httpClientMock := &mocks.HttpClientMock{}
rmClient := clients.NewRoutingManagerClient(log, config, httpClientMock)
- ranListManager := NewRanListManager(log)
+ ranListManager := NewRanListManager(log, rnibDataService)
ranAlarmService := services.NewRanAlarmService(log, config)
ranConnectStatusChangeManager := NewRanConnectStatusChangeManager(log, rnibDataService, ranListManager, ranAlarmService)
e2tAssociationManager := NewE2TAssociationManager(log, rnibDataService, e2tInstancesManager, rmClient, ranConnectStatusChangeManager)
nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
updatedNb := *nb
updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
- writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, StateChangeMessageChannel, RanName+"_CONNECTED").Return(nil)
+ writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, RanName+"_CONNECTED").Return(nil)
updatedNb2 := *nb
updatedNb2.ConnectionStatus = entities.ConnectionStatus_CONNECTED
updatedNb2.AssociatedE2TInstanceAddress = E2TAddress
httpClientMock.AssertExpectations(t)
}
+func TestAssociateRan_RnibError(t *testing.T) {
+ manager, readerMock, writerMock, httpClientMock := initE2TAssociationManagerTest(t)
+ mockHttpClient(httpClientMock, clients.AssociateRanToE2TInstanceApiSuffix, true)
+ nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
+ updatedNb := *nb
+ updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
+ writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, RanName+"_CONNECTED").Return(common.NewInternalError(fmt.Errorf("for tests")))
+
+ err := manager.AssociateRan(E2TAddress, nb)
+
+ assert.NotNil(t, err)
+ assert.IsType(t, &e2managererrors.RnibDbError{}, err)
+ readerMock.AssertExpectations(t)
+ writerMock.AssertExpectations(t)
+ httpClientMock.AssertExpectations(t)
+}
+
func TestAssociateRanRoutingManagerError(t *testing.T) {
manager, _, writerMock, httpClientMock := initE2TAssociationManagerTest(t)
mockHttpClient(httpClientMock, clients.AssociateRanToE2TInstanceApiSuffix, false)
updatedNb := *nb
updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
- writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, StateChangeMessageChannel, RanName+"_CONNECTED").Return(nil)
+ writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, RanName+"_CONNECTED").Return(nil)
updatedNb2 := *nb
updatedNb2.ConnectionStatus = entities.ConnectionStatus_CONNECTED
updatedNb2.AssociatedE2TInstanceAddress = E2TAddress
updatedNb := *nb
updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
- writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, StateChangeMessageChannel, RanName+"_CONNECTED").Return(nil)
+ writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, RanName+"_CONNECTED").Return(nil)
updatedNb2 := *nb
updatedNb2.AssociatedE2TInstanceAddress = E2TAddress
updatedNb := *nb
updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
- writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, StateChangeMessageChannel, RanName+"_CONNECTED").Return(nil)
+ writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", &updatedNb, ranName+"_CONNECTED").Return(nil)
updatedNb2 := *nb
updatedNb2.AssociatedE2TInstanceAddress = E2TAddress