[RICPLT-2585] add UTs coverage
[ric-plt/e2mgr.git] / E2Manager / managers / e2t_instances_manager_test.go
index 4928de0..029d506 100644 (file)
@@ -5,6 +5,7 @@ import (
        "e2mgr/logger"
        "e2mgr/mocks"
        "e2mgr/services"
+       "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"
@@ -88,3 +89,278 @@ func TestAddNewE2TInstanceSaveE2TInfoListFailure(t *testing.T) {
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.NotNil(t, err)
 }
+
+func TestGetE2TInstanceSuccess(t *testing.T) {
+       rnibReaderMock, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       address := "10.10.2.15:9800"
+       e2tInstance := entities.NewE2TInstance(address)
+       rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
+       res, err := e2tInstancesManager.GetE2TInstance(address)
+       assert.Nil(t, err)
+       assert.Equal(t, e2tInstance, res)
+}
+
+func TestGetE2TInstanceFailure(t *testing.T) {
+       rnibReaderMock, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       address := "10.10.2.15:9800"
+       var e2tInstance *entities.E2TInstance
+       rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, common.NewInternalError(fmt.Errorf("for test")))
+       res, err := e2tInstancesManager.GetE2TInstance(address)
+       assert.NotNil(t, err)
+       assert.Nil(t, res)
+}
+
+func TestAssociateRanSuccess(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       e2tInfo3 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo3.AssociatedRanCount = 1;
+       e2tInfoList2 := []*entities.E2TInstanceInfo{e2tInfo3, e2tInfo2}
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList2).Return(nil)
+
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, nil)
+       rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
+
+       err := e2tInstancesManager.AssociateRan("test1", address1)
+       assert.Nil(t, err)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
+}
+
+func TestAssociateRanGetListFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+
+       var e2tInfoList []*entities.E2TInstanceInfo
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.AssociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInfoList")
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+}
+
+func TestAssociateRanSaveListFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.AssociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+}
+
+func TestAssociateRanGetInstanceFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
+
+       var e2tInstance1 *entities.E2TInstance
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.AssociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+}
+
+func TestAssociateRanSaveInstanceFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       e2tInfo3 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo3.AssociatedRanCount = 1;
+       e2tInfoList2 := []*entities.E2TInstanceInfo{e2tInfo3, e2tInfo2}
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList2).Return(nil)
+
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, nil)
+       rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.AssociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
+}
+
+func TestDeassociateRanSuccess(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 1;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 0;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       e2tInfo3 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo3.AssociatedRanCount = 0;
+       e2tInfoList2 := []*entities.E2TInstanceInfo{e2tInfo3, e2tInfo2}
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList2).Return(nil)
+
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       e2tInstance1.AssociatedRanList = append(e2tInstance1.AssociatedRanList, "test0", "test1")
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, nil)
+       rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.Nil(t, err)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
+}
+
+func TestDeassociateRanNoInstanceFound(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfoList := []*entities.E2TInstanceInfo{}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.Nil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInfoList")
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+}
+
+func TestDeassociateRanGetListFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+
+       var e2tInfoList []*entities.E2TInstanceInfo
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInfoList")
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+}
+
+func TestDeassociateRanSaveListFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+}
+
+func TestDeassociateRanGetInstanceFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 0;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 1;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
+
+       var e2tInstance1 *entities.E2TInstance
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+}
+
+func TestDeassociateRanSaveInstanceFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+       address1 := "10.10.2.15:9800"
+       e2tInfo1 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo1.AssociatedRanCount = 1;
+       address2 := "10.10.2.15:9801"
+       e2tInfo2 := entities.NewE2TInstanceInfo(address2)
+       e2tInfo2.AssociatedRanCount = 0;
+       e2tInfoList := []*entities.E2TInstanceInfo{e2tInfo1, e2tInfo2}
+       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
+
+       e2tInfo3 := entities.NewE2TInstanceInfo(address1)
+       e2tInfo3.AssociatedRanCount = 0;
+       e2tInfoList2 := []*entities.E2TInstanceInfo{e2tInfo3, e2tInfo2}
+       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList2).Return(nil)
+
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, nil)
+       rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
+
+       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       assert.NotNil(t, err)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
+}
+
+
+func TestRemoveE2TInstance(t *testing.T) {
+       _, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       address1 := "10.10.2.15:9800"
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       err := e2tInstancesManager.RemoveE2TInstance(e2tInstance1)
+       assert.Nil(t, err)
+}
+
+func TestSelectE2TInstance(t *testing.T) {
+       _, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       address1 := "10.10.2.15:9800"
+       e2tInstance1  := entities.NewE2TInstance(address1)
+       addr, err := e2tInstancesManager.SelectE2TInstance(e2tInstance1)
+       assert.Nil(t, err)
+       assert.Equal(t, "", addr)
+}
+
+