X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=inline;f=E2Manager%2Fmanagers%2Fe2t_instances_manager_test.go;h=2674349e6fd1831063490162cc9af367783a61fe;hb=a75da9a56d61ca4754650d44a54bbf0b04f610d1;hp=fb564e510c39edbb7e4d0ef435bd469bc97f4266;hpb=372a275602ae05da22130a4601709291c7fbbaa6;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/managers/e2t_instances_manager_test.go b/E2Manager/managers/e2t_instances_manager_test.go index fb564e5..2674349 100644 --- a/E2Manager/managers/e2t_instances_manager_test.go +++ b/E2Manager/managers/e2t_instances_manager_test.go @@ -13,11 +13,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// + +// This source code is part of the near-RT RIC (RAN Intelligent Controller) +// platform project (RICP). + package managers import ( "e2mgr/configuration" + "e2mgr/e2managererrors" "e2mgr/logger" "e2mgr/mocks" "e2mgr/services" @@ -130,30 +134,30 @@ func TestGetE2TInstanceSuccess(t *testing.T) { assert.Equal(t, e2tInstance, res) } -func TestAssociateRanGetInstanceFailure(t *testing.T) { +func TestAddRanToInstanceGetInstanceFailure(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.AssociateRan("test1", E2TAddress) + err := e2tInstancesManager.AddRansToInstance(E2TAddress, []string{"test1"}) assert.NotNil(t, err) rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") } -func TestAssociateRanSaveInstanceFailure(t *testing.T) { +func TestAddRanToInstanceSaveInstanceFailure(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.AssociateRan("test1", E2TAddress) + err := e2tInstancesManager.AddRansToInstance(E2TAddress, []string{"test1"}) assert.NotNil(t, err) rnibReaderMock.AssertExpectations(t) rnibWriterMock.AssertExpectations(t) } -func TestAssociateRanSuccess(t *testing.T) { +func TestAddRanToInstanceSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) e2tInstance := entities.NewE2TInstance(E2TAddress) rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil) @@ -163,36 +167,36 @@ func TestAssociateRanSuccess(t *testing.T) { rnibWriterMock.On("SaveE2TInstance", &updateE2TInstance).Return(nil) - err := e2tInstancesManager.AssociateRan("test1", E2TAddress) + err := e2tInstancesManager.AddRansToInstance(E2TAddress, []string{"test1"}) assert.Nil(t, err) rnibReaderMock.AssertExpectations(t) rnibWriterMock.AssertExpectations(t) } -func TestDissociateRanGetInstanceFailure(t *testing.T) { +func TestRemoveRanFromInstanceGetInstanceFailure(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) + err := e2tInstancesManager.RemoveRanFromInstance("test1", E2TAddress) assert.NotNil(t, err) rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") } -func TestDissociateRanSaveInstanceFailure(t *testing.T) { +func TestRemoveRanFromInstanceSaveInstanceFailure(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) + err := e2tInstancesManager.RemoveRanFromInstance("test1", E2TAddress) assert.NotNil(t, err) rnibReaderMock.AssertExpectations(t) rnibWriterMock.AssertExpectations(t) } -func TestDissociateRanSuccess(t *testing.T) { +func TestRemoveRanFromInstanceSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) e2tInstance := entities.NewE2TInstance(E2TAddress) @@ -202,7 +206,7 @@ func TestDissociateRanSuccess(t *testing.T) { rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil) rnibWriterMock.On("SaveE2TInstance", &updatedE2TInstance).Return(nil) - err := e2tInstancesManager.DissociateRan("test1", E2TAddress) + err := e2tInstancesManager.RemoveRanFromInstance("test1", E2TAddress) assert.Nil(t, err) rnibReaderMock.AssertExpectations(t) rnibWriterMock.AssertExpectations(t) @@ -293,37 +297,38 @@ func TestSelectE2TInstancesSuccess(t *testing.T) { } func TestActivateE2TInstanceSuccess(t *testing.T) { - _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) e2tInstance1 := entities.NewE2TInstance(E2TAddress) - e2tInstance1.State = entities.RoutingManagerFailure + e2tInstance1.State = entities.ToBeDeleted e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"} + rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil) + rnibWriterMock.On("SaveE2TInstance", mock.MatchedBy(func(e2tInstance *entities.E2TInstance) bool { return e2tInstance.State == entities.Active })).Return(nil) - rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) - - err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1) + err := e2tInstancesManager.SetE2tInstanceState(E2TAddress, entities.ToBeDeleted, entities.Active) assert.Nil(t, err) assert.Equal(t, entities.Active, e2tInstance1.State) rnibWriterMock.AssertExpectations(t) } func TestActivateE2TInstance_RnibError(t *testing.T) { - _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - - e2tInstance1 := entities.NewE2TInstance(E2TAddress) - e2tInstance1.State = entities.RoutingManagerFailure - e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"} + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error"))) + var e2tInstance1 *entities.E2TInstance + rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, common.NewInternalError(errors.New("for test"))) - err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1) + err := e2tInstancesManager.SetE2tInstanceState(E2TAddress, entities.ToBeDeleted, entities.Active) assert.NotNil(t, err) + rnibWriterMock.AssertExpectations(t) } func TestActivateE2TInstance_NoInstance(t *testing.T) { - _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + var e2tInstance1 *entities.E2TInstance + rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, e2managererrors.NewResourceNotFoundError()) - err := e2tInstancesManager.ActivateE2TInstance(nil) + err := e2tInstancesManager.SetE2tInstanceState(E2TAddress, entities.ToBeDeleted, entities.Active) assert.NotNil(t, err) rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") @@ -382,27 +387,6 @@ func TestResetKeepAliveTimestampToBeDeleted(t *testing.T) { rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") } -func TestResetKeepAliveTimestampRoutingManagerFailure(t *testing.T) { - rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - - address := "10.10.2.15:9800" - e2tInstance := entities.NewE2TInstance(address) - e2tInstance.State = entities.RoutingManagerFailure - rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil) - - err := e2tInstancesManager.ResetKeepAliveTimestamp(address) - assert.Nil(t, err) - rnibReaderMock.AssertCalled(t, "GetE2TInstance", address) - rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") -} - -func TestRemoveE2TInstance(t *testing.T) { - _, _, e2tInstancesManager := initE2TInstancesManagerTest(t) - e2tInstance1 := entities.NewE2TInstance(E2TAddress) - err := e2tInstancesManager.RemoveE2TInstance(e2tInstance1) - assert.Nil(t, err) -} - func TestResetKeepAliveTimestampsForAllE2TInstancesGetE2TInstancesFailure(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(errors.New("Error"))) @@ -424,7 +408,7 @@ func TestResetKeepAliveTimestampsForAllE2TInstancesNoActiveInstances(t *testing. e2tInstance1 := entities.NewE2TInstance(E2TAddress) e2tInstance1.State = entities.ToBeDeleted e2tInstance2 := entities.NewE2TInstance(E2TAddress2) - e2tInstance2.State = entities.RoutingManagerFailure + e2tInstance2.State = entities.ToBeDeleted rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") @@ -457,3 +441,112 @@ func TestResetKeepAliveTimestampsForAllE2TInstancesSaveE2TInstanceFailure(t *tes e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance",1) } + +func TestRemoveE2TInstanceSuccess(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibWriterMock.On("RemoveE2TInstance", E2TAddress).Return(nil) + e2tAddresses := []string{E2TAddress, E2TAddress2} + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil) + e2tAddressesNew := []string{E2TAddress2} + rnibWriterMock.On("SaveE2TAddresses", e2tAddressesNew).Return(nil) + + err := e2tInstancesManager.RemoveE2TInstance(E2TAddress) + assert.Nil(t, err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +} + +func TestRemoveE2TInstanceRnibErrorInRemoveInstance(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibWriterMock.On("RemoveE2TInstance", E2TAddress).Return(e2managererrors.NewRnibDbError()) + + err := e2tInstancesManager.RemoveE2TInstance(E2TAddress) + assert.NotNil(t, err) + assert.IsType(t, e2managererrors.NewRnibDbError(), err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +} + +func TestRemoveE2TInstanceRnibErrorInGetAddresses(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibWriterMock.On("RemoveE2TInstance", E2TAddress).Return(nil) + var e2tAddresses []string + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, e2managererrors.NewRnibDbError()) + + err := e2tInstancesManager.RemoveE2TInstance(E2TAddress) + assert.NotNil(t, err) + assert.IsType(t, e2managererrors.NewRnibDbError(), err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +} + +func TestRemoveE2TInstanceRnibErrorInSaveAddresses(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibWriterMock.On("RemoveE2TInstance", E2TAddress).Return(nil) + e2tAddresses := []string{E2TAddress, E2TAddress2} + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil) + e2tAddressesNew := []string{E2TAddress2} + rnibWriterMock.On("SaveE2TAddresses", e2tAddressesNew).Return(e2managererrors.NewRnibDbError()) + + err := e2tInstancesManager.RemoveE2TInstance(E2TAddress) + assert.NotNil(t, err) + assert.IsType(t, e2managererrors.NewRnibDbError(), err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +} + +func TestSetE2tInstanceStateCurrentStateHasChanged(t *testing.T) { + rnibReaderMock, _, e2tInstancesManager := initE2TInstancesManagerTest(t) + + e2tInstance := entities.NewE2TInstance(E2TAddress) + e2tInstance.State = entities.Active + + rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil) + + err := e2tInstancesManager.SetE2tInstanceState(E2TAddress, entities.ToBeDeleted, entities.Active) + assert.NotNil(t, err) + assert.IsType(t, e2managererrors.NewInternalError(), err) + rnibReaderMock.AssertExpectations(t) +} + +func TestSetE2tInstanceStateErrorInSaveE2TInstance(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + e2tInstance := entities.NewE2TInstance(E2TAddress) + e2tInstance.State = entities.ToBeDeleted + rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for testing"))) + + err := e2tInstancesManager.SetE2tInstanceState(E2TAddress, entities.ToBeDeleted, entities.Active) + assert.NotNil(t, err) + assert.IsType(t, &common.InternalError{}, err) + rnibReaderMock.AssertExpectations(t) +} + +func TestClearRansOfAllE2TInstancesEmptyList(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + E2TAddresses := []string{} + rnibReaderMock.On("GetE2TAddresses").Return(E2TAddresses, nil) + err := e2tInstancesManager.ClearRansOfAllE2TInstances() + assert.Nil(t, err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +} + +func TestClearRansOfAllE2TInstancesErrorInSaveE2TInstance(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) + rnibWriterMock.On("SaveE2TInstance", mock.MatchedBy(func(e2tInstance *entities.E2TInstance) bool { return e2tInstance.Address == E2TAddress})).Return(common.NewInternalError(fmt.Errorf("for testing"))) + rnibWriterMock.On("SaveE2TInstance", mock.MatchedBy(func(e2tInstance *entities.E2TInstance) bool { return e2tInstance.Address == E2TAddress2})).Return(nil) + err := e2tInstancesManager.ClearRansOfAllE2TInstances() + assert.Nil(t, err) + rnibReaderMock.AssertExpectations(t) + rnibWriterMock.AssertExpectations(t) +}