X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmanagers%2Fe2t_instances_manager_test.go;h=fb564e510c39edbb7e4d0ef435bd469bc97f4266;hb=refs%2Fchanges%2F92%2F2092%2F1;hp=88f940b84619744b31bd5c72c43db2336b80659f;hpb=3a4f37e98ae155b8d910b0a61c6b88d8832cac90;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/managers/e2t_instances_manager_test.go b/E2Manager/managers/e2t_instances_manager_test.go index 88f940b..fb564e5 100644 --- a/E2Manager/managers/e2t_instances_manager_test.go +++ b/E2Manager/managers/e2t_instances_manager_test.go @@ -1,3 +1,19 @@ +// +// Copyright 2019 AT&T Intellectual Property +// Copyright 2019 Nokia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. +// package managers import ( @@ -49,7 +65,18 @@ func TestAddNewE2TInstanceGetE2TAddressesInternalFailure(t *testing.T) { rnibReaderMock.AssertNotCalled(t, "SaveE2TAddresses") } -func TestAddNewE2TInstanceNoE2TAddresses(t *testing.T) { +func TestAddNewE2TInstanceSaveE2TAddressesFailure(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) + 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) +} + +func TestAddNewE2TInstanceNoE2TAddressesSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) e2tAddresses := []string{} @@ -61,7 +88,7 @@ func TestAddNewE2TInstanceNoE2TAddresses(t *testing.T) { rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses) } -func TestAddNewE2TInstanceEmptyE2TAddresses(t *testing.T) { +func TestAddNewE2TInstanceEmptyE2TAddressesSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) e2tAddresses := []string{} @@ -73,25 +100,15 @@ func TestAddNewE2TInstanceEmptyE2TAddresses(t *testing.T) { rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses) } -func TestAddNewE2TInstanceSaveE2TAddressesFailure(t *testing.T) { +func TestAddNewE2TInstanceExistingE2TAddressesSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) - E2TAddresses := []string{} + E2TAddresses := []string{"10.0.1.15:3030"} rnibReaderMock.On("GetE2TAddresses").Return(E2TAddresses, nil) E2TAddresses = append(E2TAddresses, E2TAddress) - rnibWriterMock.On("SaveE2TAddresses", E2TAddresses).Return(common.NewResourceNotFoundError("")) + rnibWriterMock.On("SaveE2TAddresses", E2TAddresses).Return(nil) 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) { @@ -103,20 +120,14 @@ func TestGetE2TInstanceFailure(t *testing.T) { 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) - - updateE2TInstance := *e2tInstance - updateE2TInstance.AssociatedRanList = append(updateE2TInstance.AssociatedRanList, "test1") - - rnibWriterMock.On("SaveE2TInstance", &updateE2TInstance).Return(nil) - - err := e2tInstancesManager.AssociateRan("test1", E2TAddress) +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) - rnibReaderMock.AssertExpectations(t) - rnibWriterMock.AssertExpectations(t) + assert.Equal(t, e2tInstance, res) } func TestAssociateRanGetInstanceFailure(t *testing.T) { @@ -132,7 +143,7 @@ func TestAssociateRanGetInstanceFailure(t *testing.T) { func TestAssociateRanSaveInstanceFailure(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil) rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test"))) @@ -142,17 +153,17 @@ func TestAssociateRanSaveInstanceFailure(t *testing.T) { rnibWriterMock.AssertExpectations(t) } -func TestDissociateRanSuccess(t *testing.T) { +func TestAssociateRanSuccess(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) + updateE2TInstance := *e2tInstance + updateE2TInstance.AssociatedRanList = append(updateE2TInstance.AssociatedRanList, "test1") + + rnibWriterMock.On("SaveE2TInstance", &updateE2TInstance).Return(nil) + + err := e2tInstancesManager.AssociateRan("test1", E2TAddress) assert.Nil(t, err) rnibReaderMock.AssertExpectations(t) rnibWriterMock.AssertExpectations(t) @@ -171,7 +182,7 @@ func TestDissociateRanGetInstanceFailure(t *testing.T) { func TestDissociateRanSaveInstanceFailure(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil) rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test"))) @@ -181,6 +192,22 @@ func TestDissociateRanSaveInstanceFailure(t *testing.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) @@ -208,7 +235,7 @@ func TestSelectE2TInstancesGetE2TInstancesFailure(t *testing.T) { addresses := []string{E2TAddress} rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil) - rnibReaderMock.On("GetE2TInstances",addresses ).Return([]*entities.E2TInstance{}, common.NewInternalError(fmt.Errorf("for test"))) + 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) @@ -221,7 +248,7 @@ func TestSelectE2TInstancesEmptyE2TInstancesList(t *testing.T) { addresses := []string{E2TAddress} rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil) - rnibReaderMock.On("GetE2TInstances",addresses ).Return([]*entities.E2TInstance{}, nil) + rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{}, nil) address, err := e2tInstancesManager.SelectE2TInstance() assert.NotNil(t, err) assert.Empty(t, address) @@ -231,16 +258,16 @@ func TestSelectE2TInstancesEmptyE2TInstancesList(t *testing.T) { func TestSelectE2TInstancesNoActiveE2TInstance(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - addresses := []string{E2TAddress,E2TAddress2} + addresses := []string{E2TAddress, E2TAddress2} e2tInstance1 := entities.NewE2TInstance(E2TAddress) e2tInstance1.State = entities.ToBeDeleted - e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"} + e2tInstance1.AssociatedRanList = []string{"test1", "test2", "test3"} e2tInstance2 := entities.NewE2TInstance(E2TAddress2) e2tInstance2.State = entities.ToBeDeleted - e2tInstance2.AssociatedRanList = []string{"test4","test5","test6", "test7"} + e2tInstance2.AssociatedRanList = []string{"test4", "test5", "test6", "test7"} rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil) - rnibReaderMock.On("GetE2TInstances",addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) + rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) address, err := e2tInstancesManager.SelectE2TInstance() assert.NotNil(t, err) assert.Equal(t, "", address) @@ -250,14 +277,14 @@ func TestSelectE2TInstancesNoActiveE2TInstance(t *testing.T) { func TestSelectE2TInstancesSuccess(t *testing.T) { rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) - addresses := []string{E2TAddress,E2TAddress2} + addresses := []string{E2TAddress, E2TAddress2} e2tInstance1 := entities.NewE2TInstance(E2TAddress) - e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"} + e2tInstance1.AssociatedRanList = []string{"test1", "test2", "test3"} e2tInstance2 := entities.NewE2TInstance(E2TAddress2) - e2tInstance2.AssociatedRanList = []string{"test4","test5","test6", "test7"} + e2tInstance2.AssociatedRanList = []string{"test4", "test5", "test6", "test7"} rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil) - rnibReaderMock.On("GetE2TInstances",addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) + rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) address, err := e2tInstancesManager.SelectE2TInstance() assert.Nil(t, err) assert.Equal(t, E2TAddress, address) @@ -265,9 +292,168 @@ func TestSelectE2TInstancesSuccess(t *testing.T) { rnibWriterMock.AssertExpectations(t) } +func TestActivateE2TInstanceSuccess(t *testing.T) { + _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1.State = entities.RoutingManagerFailure + e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"} + + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) + + err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1) + 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"} + + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error"))) + + err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1) + assert.NotNil(t, err) +} + +func TestActivateE2TInstance_NoInstance(t *testing.T) { + _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + err := e2tInstancesManager.ActivateE2TInstance(nil) + + assert.NotNil(t, err) + rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") +} + +func TestResetKeepAliveTimestampGetInternalFailure(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + address := "10.10.2.15:9800" + e2tInstance := entities.NewE2TInstance(address) + rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, common.NewInternalError(errors.New("Error"))) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) + + err := e2tInstancesManager.ResetKeepAliveTimestamp(address) + assert.NotNil(t, err) + rnibReaderMock.AssertNotCalled(t, "SaveE2TInstance") +} + +func TestAResetKeepAliveTimestampSaveInternalFailure(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + address := "10.10.2.15:9800" + e2tInstance := entities.NewE2TInstance(address) + rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error"))) + + err := e2tInstancesManager.ResetKeepAliveTimestamp(address) + assert.NotNil(t, err) +} + +func TestResetKeepAliveTimestampSuccess(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + address := "10.10.2.15:9800" + e2tInstance := entities.NewE2TInstance(address) + rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) + + err := e2tInstancesManager.ResetKeepAliveTimestamp(address) + assert.Nil(t, err) + rnibReaderMock.AssertCalled(t, "GetE2TInstance", address) + rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance", 1) +} + +func TestResetKeepAliveTimestampToBeDeleted(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + + address := "10.10.2.15:9800" + e2tInstance := entities.NewE2TInstance(address) + e2tInstance.State = entities.ToBeDeleted + 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 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) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) err := e2tInstancesManager.RemoveE2TInstance(e2tInstance1) assert.Nil(t, err) -} \ No newline at end of file +} + +func TestResetKeepAliveTimestampsForAllE2TInstancesGetE2TInstancesFailure(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(errors.New("Error"))) + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") +} + +func TestResetKeepAliveTimestampsForAllE2TInstancesNoInstances(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + rnibReaderMock.On("GetE2TAddresses").Return([]string{}, nil) + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") +} + +func TestResetKeepAliveTimestampsForAllE2TInstancesNoActiveInstances(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + e2tAddresses := []string{E2TAddress, E2TAddress2} + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1.State = entities.ToBeDeleted + e2tInstance2 := entities.NewE2TInstance(E2TAddress2) + e2tInstance2.State = entities.RoutingManagerFailure + rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance") +} + +func TestResetKeepAliveTimestampsForAllE2TInstancesOneActiveInstance(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + e2tAddresses := []string{E2TAddress, E2TAddress2} + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1.State = entities.Active + e2tInstance2 := entities.NewE2TInstance(E2TAddress2) + e2tInstance2.State = entities.ToBeDeleted + rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil) + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance",1) +} + +func TestResetKeepAliveTimestampsForAllE2TInstancesSaveE2TInstanceFailure(t *testing.T) { + rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t) + e2tAddresses := []string{E2TAddress, E2TAddress2} + rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil) + e2tInstance1 := entities.NewE2TInstance(E2TAddress) + e2tInstance1.State = entities.Active + e2tInstance2 := entities.NewE2TInstance(E2TAddress2) + e2tInstance2.State = entities.ToBeDeleted + rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil) + rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error"))) + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance",1) +}