-//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("SaveE2TAddresses", 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, "SaveE2TAddresses")
-// 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("SaveE2TAddresses", 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("SaveE2TAddresses", 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("SaveE2TAddresses", 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("SaveE2TAddresses", 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.DissociateRan("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.DissociateRan("test1", address1)
-// assert.Nil(t, err)
-// rnibWriterMock.AssertNotCalled(t, "SaveE2TAddresses")
-// 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.DissociateRan("test1", address1)
-// assert.NotNil(t, err)
-// rnibWriterMock.AssertNotCalled(t, "SaveE2TAddresses")
-// 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("SaveE2TAddresses", e2tInfoList).Return(common.NewInternalError(fmt.Errorf("for test")))
-//
-// err := e2tInstancesManager.DissociateRan("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("SaveE2TAddresses", e2tInfoList).Return(nil)
-//
-// var e2tInstance1 *entities.E2TInstance
-// rnibReaderMock.On("GetE2TInstance", address1).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
-//
-// err := e2tInstancesManager.DissociateRan("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("SaveE2TAddresses", 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.DissociateRan("test1", address1)
-// assert.NotNil(t, err)
-// rnibReaderMock.AssertExpectations(t)
-// rnibWriterMock.AssertExpectations(t)
-//}
+func TestDissociateRanGetInstanceFailure(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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")
+}
+
+func TestDissociateRanSaveInstanceFailure(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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.DissociateRan("test1", E2TAddress)
+ assert.NotNil(t, err)
+ rnibReaderMock.AssertExpectations(t)
+ rnibWriterMock.AssertExpectations(t)
+}
+
+func TestDissociateRanSuccess(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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.DissociateRan("test1", E2TAddress)
+ assert.Nil(t, err)
+ rnibReaderMock.AssertExpectations(t)
+ rnibWriterMock.AssertExpectations(t)
+}
+
+func TestSelectE2TInstancesGetE2TAddressesFailure(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(fmt.Errorf("for test")))
+ address, err := e2tInstancesManager.SelectE2TInstance()
+ assert.NotNil(t, err)
+ assert.Empty(t, address)
+ rnibReaderMock.AssertExpectations(t)
+ rnibWriterMock.AssertNotCalled(t, "GetE2TInstances")
+}
+
+func TestSelectE2TInstancesEmptyE2TAddressList(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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")
+}
+
+func TestSelectE2TInstancesGetE2TInstancesFailure(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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)
+ assert.Empty(t, address)
+ rnibReaderMock.AssertExpectations(t)
+ rnibWriterMock.AssertExpectations(t)
+}
+
+func TestSelectE2TInstancesEmptyE2TInstancesList(t *testing.T) {
+ rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
+
+ 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 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)
+}