[RICPLT-2523] Update setup flow | Add UTs..........
[ric-plt/e2mgr.git] / E2Manager / managers / e2t_instances_manager_test.go
index 029d506..88f940b 100644 (file)
@@ -14,7 +14,8 @@ import (
        "testing"
 )
 
-const E2TAddress = "10.0.2.15"
+const E2TAddress = "10.10.2.15:9800"
+const E2TAddress2 = "10.10.2.16:9800"
 
 func initE2TInstancesManagerTest(t *testing.T) (*mocks.RnibReaderMock, *mocks.RnibWriterMock, *E2TInstancesManager) {
        logger, err := logger.InitLogger(logger.DebugLevel)
@@ -30,62 +31,55 @@ func initE2TInstancesManagerTest(t *testing.T) (*mocks.RnibReaderMock, *mocks.Rn
        return readerMock, writerMock, e2tInstancesManager
 }
 
-func TestAddNewE2TInstanceEmptyAddress(t *testing.T) {
-       _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
-       err := e2tInstancesManager.AddE2TInstance("")
-       assert.NotNil(t, err)
-       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
-}
-
 func TestAddNewE2TInstanceSaveE2TInstanceFailure(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.NotNil(t, err)
-       rnibReaderMock.AssertNotCalled(t, "GetE2TInfoList")
+       rnibReaderMock.AssertNotCalled(t, "GetE2TAddresses")
 }
 
-func TestAddNewE2TInstanceGetE2TInfoListInternalFailure(t *testing.T) {
+func TestAddNewE2TInstanceGetE2TAddressesInternalFailure(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
-       e2tInfoList := []*entities.E2TInstanceInfo{}
-       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewInternalError(errors.New("Error")))
+       e2tAddresses := []string{}
+       rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, common.NewInternalError(errors.New("Error")))
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.NotNil(t, err)
-       rnibReaderMock.AssertNotCalled(t, "SaveE2TInfoList")
+       rnibReaderMock.AssertNotCalled(t, "SaveE2TAddresses")
 }
 
-func TestAddNewE2TInstanceNoE2TInfoList(t *testing.T) {
+func TestAddNewE2TInstanceNoE2TAddresses(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
-       e2tInfoList := []*entities.E2TInstanceInfo{}
-       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, common.NewResourceNotFoundError(""))
-       e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
-       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
+       e2tAddresses := []string{}
+       rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, common.NewResourceNotFoundError(""))
+       e2tAddresses = append(e2tAddresses, E2TAddress)
+       rnibWriterMock.On("SaveE2TAddresses", e2tAddresses).Return(nil)
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.Nil(t, err)
-       rnibWriterMock.AssertCalled(t, "SaveE2TInfoList", e2tInfoList)
+       rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses)
 }
 
-func TestAddNewE2TInstanceEmptyE2TInfoList(t *testing.T) {
+func TestAddNewE2TInstanceEmptyE2TAddresses(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
-       e2tInfoList := []*entities.E2TInstanceInfo{}
-       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
-       e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
-       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(nil)
+       e2tAddresses := []string{}
+       rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
+       e2tAddresses = append(e2tAddresses, E2TAddress)
+       rnibWriterMock.On("SaveE2TAddresses", e2tAddresses).Return(nil)
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.Nil(t, err)
-       rnibWriterMock.AssertCalled(t, "SaveE2TInfoList", e2tInfoList)
+       rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses)
 }
 
-func TestAddNewE2TInstanceSaveE2TInfoListFailure(t *testing.T) {
+func TestAddNewE2TInstanceSaveE2TAddressesFailure(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
-       e2tInfoList := []*entities.E2TInstanceInfo{}
-       rnibReaderMock.On("GetE2TInfoList").Return(e2tInfoList, nil)
-       e2tInfoList = append(e2tInfoList, &entities.E2TInstanceInfo{Address: E2TAddress})
-       rnibWriterMock.On("SaveE2TInfoList", e2tInfoList).Return(common.NewResourceNotFoundError(""))
+       E2TAddresses := []string{}
+       rnibReaderMock.On("GetE2TAddresses").Return(E2TAddresses, nil)
+       E2TAddresses = append(E2TAddresses, E2TAddress)
+       rnibWriterMock.On("SaveE2TAddresses", E2TAddresses).Return(common.NewResourceNotFoundError(""))
        err := e2tInstancesManager.AddE2TInstance(E2TAddress)
        assert.NotNil(t, err)
 }
@@ -102,265 +96,178 @@ func TestGetE2TInstanceSuccess(t *testing.T) {
 
 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)
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, common.NewInternalError(fmt.Errorf("for test")))
+       res, err := e2tInstancesManager.GetE2TInstance(E2TAddress)
        assert.NotNil(t, err)
        assert.Nil(t, res)
 }
 
 func TestAssociateRanSuccess(t *testing.T) {
        rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       e2tInstance  := entities.NewE2TInstance(E2TAddress)
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil)
 
-       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)
+       updateE2TInstance := *e2tInstance
+       updateE2TInstance.AssociatedRanList = append(updateE2TInstance.AssociatedRanList, "test1")
 
-       err := e2tInstancesManager.AssociateRan("test1", address1)
+       rnibWriterMock.On("SaveE2TInstance", &updateE2TInstance).Return(nil)
+
+       err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
        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")))
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
 
-       err := e2tInstancesManager.AssociateRan("test1", address1)
+       err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
        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)
+       e2tInstance1  := entities.NewE2TInstance(E2TAddress)
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil)
        rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
 
-       err := e2tInstancesManager.AssociateRan("test1", address1)
+       err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
        assert.NotNil(t, err)
        rnibReaderMock.AssertExpectations(t)
        rnibWriterMock.AssertExpectations(t)
 }
 
-func TestDeassociateRanSuccess(t *testing.T) {
+func TestDissociateRanSuccess(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)
+       e2tInstance := entities.NewE2TInstance(E2TAddress)
+       e2tInstance.AssociatedRanList = []string{"test0","test1"}
+       updatedE2TInstance := *e2tInstance
+       updatedE2TInstance.AssociatedRanList = []string{"test0"}
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil)
+       rnibWriterMock.On("SaveE2TInstance", &updatedE2TInstance).Return(nil)
 
-       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
        assert.Nil(t, err)
        rnibReaderMock.AssertExpectations(t)
        rnibWriterMock.AssertExpectations(t)
 }
 
-func TestDeassociateRanNoInstanceFound(t *testing.T) {
+func TestDissociateRanGetInstanceFailure(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")
+       var e2tInstance1 *entities.E2TInstance
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
+       err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
+       assert.NotNil(t, err)
        rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
-       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
 }
 
-func TestDeassociateRanGetListFailure(t *testing.T) {
+func TestDissociateRanSaveInstanceFailure(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")))
+       e2tInstance1  := entities.NewE2TInstance(E2TAddress)
+       rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil)
+       rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
 
-       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
        assert.NotNil(t, err)
-       rnibWriterMock.AssertNotCalled(t, "SaveE2TInfoList")
-       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
-       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
 }
 
-func TestDeassociateRanSaveListFailure(t *testing.T) {
+func TestSelectE2TInstancesGetE2TAddressesFailure(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)
+       rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(fmt.Errorf("for test")))
+       address, err := e2tInstancesManager.SelectE2TInstance()
        assert.NotNil(t, err)
-       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
-       rnibReaderMock.AssertNotCalled(t, "GetE2TInstance")
+       assert.Empty(t, address)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertNotCalled(t, "GetE2TInstances")
 }
 
-func TestDeassociateRanGetInstanceFailure(t *testing.T) {
+func TestSelectE2TInstancesEmptyE2TAddressList(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)
+       rnibReaderMock.On("GetE2TAddresses").Return([]string{}, nil)
+       address, err := e2tInstancesManager.SelectE2TInstance()
+       assert.NotNil(t, err)
+       assert.Empty(t, address)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertNotCalled(t, "GetE2TInstances")
+}
 
-       var e2tInstance1 *entities.E2TInstance
-       rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
+func TestSelectE2TInstancesGetE2TInstancesFailure(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
 
-       err := e2tInstancesManager.DeassociateRan("test1", address1)
+       addresses := []string{E2TAddress}
+       rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
+       rnibReaderMock.On("GetE2TInstances",addresses ).Return([]*entities.E2TInstance{}, common.NewInternalError(fmt.Errorf("for test")))
+       address, err := e2tInstancesManager.SelectE2TInstance()
        assert.NotNil(t, err)
-       rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
+       assert.Empty(t, address)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
 }
 
-func TestDeassociateRanSaveInstanceFailure(t *testing.T) {
+func TestSelectE2TInstancesEmptyE2TInstancesList(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)
+       addresses := []string{E2TAddress}
+       rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
+       rnibReaderMock.On("GetE2TInstances",addresses ).Return([]*entities.E2TInstance{}, nil)
+       address, err := e2tInstancesManager.SelectE2TInstance()
        assert.NotNil(t, err)
+       assert.Empty(t, address)
        rnibReaderMock.AssertExpectations(t)
        rnibWriterMock.AssertExpectations(t)
 }
 
+func TestSelectE2TInstancesNoActiveE2TInstance(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       addresses := []string{E2TAddress,E2TAddress2}
+       e2tInstance1 := entities.NewE2TInstance(E2TAddress)
+       e2tInstance1.State = entities.ToBeDeleted
+       e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"}
+       e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
+       e2tInstance2.State = entities.ToBeDeleted
+       e2tInstance2.AssociatedRanList = []string{"test4","test5","test6", "test7"}
+
+       rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
+       rnibReaderMock.On("GetE2TInstances",addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
+       address, err := e2tInstancesManager.SelectE2TInstance()
+       assert.NotNil(t, err)
+       assert.Equal(t, "", address)
+       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)
+func TestSelectE2TInstancesSuccess(t *testing.T) {
+       rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+       addresses := []string{E2TAddress,E2TAddress2}
+       e2tInstance1 := entities.NewE2TInstance(E2TAddress)
+       e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"}
+       e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
+       e2tInstance2.AssociatedRanList = []string{"test4","test5","test6", "test7"}
+
+       rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
+       rnibReaderMock.On("GetE2TInstances",addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
+       address, err := e2tInstancesManager.SelectE2TInstance()
        assert.Nil(t, err)
+       assert.Equal(t, E2TAddress, address)
+       rnibReaderMock.AssertExpectations(t)
+       rnibWriterMock.AssertExpectations(t)
 }
 
-func TestSelectE2TInstance(t *testing.T) {
+func TestRemoveE2TInstance(t *testing.T) {
        _, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
-       address1 := "10.10.2.15:9800"
-       e2tInstance1  := entities.NewE2TInstance(address1)
-       addr, err := e2tInstancesManager.SelectE2TInstance(e2tInstance1)
+       e2tInstance1  := entities.NewE2TInstance(E2TAddress)
+       err := e2tInstancesManager.RemoveE2TInstance(e2tInstance1)
        assert.Nil(t, err)
-       assert.Equal(t, "", addr)
-}
-
-
+}
\ No newline at end of file