8 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
9 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
10 "github.com/pkg/errors"
11 "github.com/stretchr/testify/assert"
12 "github.com/stretchr/testify/mock"
16 const E2TAddress = "10.0.2.15"
18 func initE2TInstancesManagerTest(t *testing.T) (*mocks.RnibReaderMock, *mocks.RnibWriterMock, *E2TInstancesManager) {
19 logger, err := logger.InitLogger(logger.DebugLevel)
21 t.Errorf("#... - failed to initialize logger, error: %s", err)
23 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
25 readerMock := &mocks.RnibReaderMock{}
26 writerMock := &mocks.RnibWriterMock{}
27 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
28 e2tInstancesManager := NewE2TInstancesManager(rnibDataService, logger)
29 return readerMock, writerMock, e2tInstancesManager
32 func TestAddNewE2TInstanceEmptyAddress(t *testing.T) {
33 _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
34 err := e2tInstancesManager.AddE2TInstance("")
36 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
39 func TestAddNewE2TInstanceSaveE2TInstanceFailure(t *testing.T) {
40 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
41 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
42 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
44 rnibReaderMock.AssertNotCalled(t, "GetE2TInfoList")
47 func TestAddNewE2TInstanceGetE2TInfoListInternalFailure(t *testing.T) {
48 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
49 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
50 e2tInfoList := []*entities.E2TInstanceInfo{}
51 rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewInternalError(errors.New("Error")))
52 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
54 rnibReaderMock.AssertNotCalled(t, "SaveE2TInfoList")
57 func TestAddNewE2TInstanceNoE2TInfoList(t *testing.T) {
58 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
59 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
60 e2tInfoList := []*entities.E2TInstanceInfo{}
61 rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewResourceNotFoundError(""))
62 e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
63 rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
64 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
66 rnibWriterMock.AssertCalled(t, "SaveE2TInfoList", e2tInfoList)
69 func TestAddNewE2TInstanceEmptyE2TInfoList(t *testing.T) {
70 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
71 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
72 e2tInfoList := []*entities.E2TInstanceInfo{}
73 rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
74 e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
75 rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
76 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
78 rnibWriterMock.AssertCalled(t, "SaveE2TInfoList", e2tInfoList)
81 func TestAddNewE2TInstanceSaveE2TInfoListFailure(t *testing.T) {
82 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
83 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
84 e2tInfoList := []*entities.E2TInstanceInfo{}
85 rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
86 e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
87 rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(common.NewResourceNotFoundError(""))
88 err := e2tInstancesManager.AddE2TInstance(E2TAddress)