2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
25 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
26 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
27 "github.com/pkg/errors"
28 "github.com/stretchr/testify/assert"
29 "github.com/stretchr/testify/mock"
33 const E2TAddress = "10.10.2.15:9800"
34 const E2TAddress2 = "10.10.2.16:9800"
36 func initE2TInstancesManagerTest(t *testing.T) (*mocks.RnibReaderMock, *mocks.RnibWriterMock, *E2TInstancesManager) {
37 logger, err := logger.InitLogger(logger.DebugLevel)
39 t.Errorf("#... - failed to initialize logger, error: %s", err)
41 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
43 readerMock := &mocks.RnibReaderMock{}
44 writerMock := &mocks.RnibWriterMock{}
45 rnibDataService := services.NewRnibDataService(logger, config, readerMock, writerMock)
46 e2tInstancesManager := NewE2TInstancesManager(rnibDataService, logger)
47 return readerMock, writerMock, e2tInstancesManager
50 func TestAddNewE2TInstanceSaveE2TInstanceFailure(t *testing.T) {
51 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
52 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
53 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
55 rnibReaderMock.AssertNotCalled(t, "GetE2TAddresses")
58 func TestAddNewE2TInstanceGetE2TAddressesInternalFailure(t *testing.T) {
59 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
60 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
61 e2tAddresses := []string{}
62 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, common.NewInternalError(errors.New("Error")))
63 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
65 rnibReaderMock.AssertNotCalled(t, "SaveE2TAddresses")
68 func TestAddNewE2TInstanceSaveE2TAddressesFailure(t *testing.T) {
69 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
70 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
71 E2TAddresses := []string{}
72 rnibReaderMock.On("GetE2TAddresses").Return(E2TAddresses, nil)
73 E2TAddresses = append(E2TAddresses, E2TAddress)
74 rnibWriterMock.On("SaveE2TAddresses", E2TAddresses).Return(common.NewResourceNotFoundError(""))
75 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
79 func TestAddNewE2TInstanceNoE2TAddressesSuccess(t *testing.T) {
80 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
81 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
82 e2tAddresses := []string{}
83 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, common.NewResourceNotFoundError(""))
84 e2tAddresses = append(e2tAddresses, E2TAddress)
85 rnibWriterMock.On("SaveE2TAddresses", e2tAddresses).Return(nil)
86 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
88 rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses)
91 func TestAddNewE2TInstanceEmptyE2TAddressesSuccess(t *testing.T) {
92 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
93 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
94 e2tAddresses := []string{}
95 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
96 e2tAddresses = append(e2tAddresses, E2TAddress)
97 rnibWriterMock.On("SaveE2TAddresses", e2tAddresses).Return(nil)
98 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
100 rnibWriterMock.AssertCalled(t, "SaveE2TAddresses", e2tAddresses)
103 func TestAddNewE2TInstanceExistingE2TAddressesSuccess(t *testing.T) {
104 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
105 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
106 E2TAddresses := []string{"10.0.1.15:3030"}
107 rnibReaderMock.On("GetE2TAddresses").Return(E2TAddresses, nil)
108 E2TAddresses = append(E2TAddresses, E2TAddress)
109 rnibWriterMock.On("SaveE2TAddresses", E2TAddresses).Return(nil)
110 err := e2tInstancesManager.AddE2TInstance(E2TAddress)
114 func TestGetE2TInstanceFailure(t *testing.T) {
115 rnibReaderMock, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
116 var e2tInstance *entities.E2TInstance
117 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, common.NewInternalError(fmt.Errorf("for test")))
118 res, err := e2tInstancesManager.GetE2TInstance(E2TAddress)
119 assert.NotNil(t, err)
123 func TestGetE2TInstanceSuccess(t *testing.T) {
124 rnibReaderMock, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
125 address := "10.10.2.15:9800"
126 e2tInstance := entities.NewE2TInstance(address)
127 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
128 res, err := e2tInstancesManager.GetE2TInstance(address)
130 assert.Equal(t, e2tInstance, res)
133 func TestAssociateRanGetInstanceFailure(t *testing.T) {
134 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
136 var e2tInstance1 *entities.E2TInstance
137 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
139 err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
140 assert.NotNil(t, err)
141 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
144 func TestAssociateRanSaveInstanceFailure(t *testing.T) {
145 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
146 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
147 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil)
148 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
150 err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
151 assert.NotNil(t, err)
152 rnibReaderMock.AssertExpectations(t)
153 rnibWriterMock.AssertExpectations(t)
156 func TestAssociateRanSuccess(t *testing.T) {
157 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
158 e2tInstance := entities.NewE2TInstance(E2TAddress)
159 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil)
161 updateE2TInstance := *e2tInstance
162 updateE2TInstance.AssociatedRanList = append(updateE2TInstance.AssociatedRanList, "test1")
164 rnibWriterMock.On("SaveE2TInstance", &updateE2TInstance).Return(nil)
166 err := e2tInstancesManager.AssociateRan("test1", E2TAddress)
168 rnibReaderMock.AssertExpectations(t)
169 rnibWriterMock.AssertExpectations(t)
172 func TestDissociateRanGetInstanceFailure(t *testing.T) {
173 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
175 var e2tInstance1 *entities.E2TInstance
176 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, common.NewInternalError(fmt.Errorf("for test")))
177 err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
178 assert.NotNil(t, err)
179 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
182 func TestDissociateRanSaveInstanceFailure(t *testing.T) {
183 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
185 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
186 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance1, nil)
187 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(fmt.Errorf("for test")))
189 err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
190 assert.NotNil(t, err)
191 rnibReaderMock.AssertExpectations(t)
192 rnibWriterMock.AssertExpectations(t)
195 func TestDissociateRanSuccess(t *testing.T) {
196 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
198 e2tInstance := entities.NewE2TInstance(E2TAddress)
199 e2tInstance.AssociatedRanList = []string{"test0", "test1"}
200 updatedE2TInstance := *e2tInstance
201 updatedE2TInstance.AssociatedRanList = []string{"test0"}
202 rnibReaderMock.On("GetE2TInstance", E2TAddress).Return(e2tInstance, nil)
203 rnibWriterMock.On("SaveE2TInstance", &updatedE2TInstance).Return(nil)
205 err := e2tInstancesManager.DissociateRan("test1", E2TAddress)
207 rnibReaderMock.AssertExpectations(t)
208 rnibWriterMock.AssertExpectations(t)
211 func TestSelectE2TInstancesGetE2TAddressesFailure(t *testing.T) {
212 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
214 rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(fmt.Errorf("for test")))
215 address, err := e2tInstancesManager.SelectE2TInstance()
216 assert.NotNil(t, err)
217 assert.Empty(t, address)
218 rnibReaderMock.AssertExpectations(t)
219 rnibWriterMock.AssertNotCalled(t, "GetE2TInstances")
222 func TestSelectE2TInstancesEmptyE2TAddressList(t *testing.T) {
223 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
225 rnibReaderMock.On("GetE2TAddresses").Return([]string{}, nil)
226 address, err := e2tInstancesManager.SelectE2TInstance()
227 assert.NotNil(t, err)
228 assert.Empty(t, address)
229 rnibReaderMock.AssertExpectations(t)
230 rnibWriterMock.AssertNotCalled(t, "GetE2TInstances")
233 func TestSelectE2TInstancesGetE2TInstancesFailure(t *testing.T) {
234 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
236 addresses := []string{E2TAddress}
237 rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
238 rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{}, common.NewInternalError(fmt.Errorf("for test")))
239 address, err := e2tInstancesManager.SelectE2TInstance()
240 assert.NotNil(t, err)
241 assert.Empty(t, address)
242 rnibReaderMock.AssertExpectations(t)
243 rnibWriterMock.AssertExpectations(t)
246 func TestSelectE2TInstancesEmptyE2TInstancesList(t *testing.T) {
247 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
249 addresses := []string{E2TAddress}
250 rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
251 rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{}, nil)
252 address, err := e2tInstancesManager.SelectE2TInstance()
253 assert.NotNil(t, err)
254 assert.Empty(t, address)
255 rnibReaderMock.AssertExpectations(t)
256 rnibWriterMock.AssertExpectations(t)
259 func TestSelectE2TInstancesNoActiveE2TInstance(t *testing.T) {
260 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
261 addresses := []string{E2TAddress, E2TAddress2}
262 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
263 e2tInstance1.State = entities.ToBeDeleted
264 e2tInstance1.AssociatedRanList = []string{"test1", "test2", "test3"}
265 e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
266 e2tInstance2.State = entities.ToBeDeleted
267 e2tInstance2.AssociatedRanList = []string{"test4", "test5", "test6", "test7"}
269 rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
270 rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
271 address, err := e2tInstancesManager.SelectE2TInstance()
272 assert.NotNil(t, err)
273 assert.Equal(t, "", address)
274 rnibReaderMock.AssertExpectations(t)
275 rnibWriterMock.AssertExpectations(t)
278 func TestSelectE2TInstancesSuccess(t *testing.T) {
279 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
280 addresses := []string{E2TAddress, E2TAddress2}
281 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
282 e2tInstance1.AssociatedRanList = []string{"test1", "test2", "test3"}
283 e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
284 e2tInstance2.AssociatedRanList = []string{"test4", "test5", "test6", "test7"}
286 rnibReaderMock.On("GetE2TAddresses").Return(addresses, nil)
287 rnibReaderMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
288 address, err := e2tInstancesManager.SelectE2TInstance()
290 assert.Equal(t, E2TAddress, address)
291 rnibReaderMock.AssertExpectations(t)
292 rnibWriterMock.AssertExpectations(t)
295 func TestActivateE2TInstanceSuccess(t *testing.T) {
296 _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
298 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
299 e2tInstance1.State = entities.RoutingManagerFailure
300 e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"}
302 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
304 err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1)
306 assert.Equal(t, entities.Active, e2tInstance1.State)
307 rnibWriterMock.AssertExpectations(t)
310 func TestActivateE2TInstance_RnibError(t *testing.T) {
311 _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
313 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
314 e2tInstance1.State = entities.RoutingManagerFailure
315 e2tInstance1.AssociatedRanList = []string{"test1","test2","test3"}
317 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
319 err := e2tInstancesManager.ActivateE2TInstance(e2tInstance1)
320 assert.NotNil(t, err)
323 func TestActivateE2TInstance_NoInstance(t *testing.T) {
324 _, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
326 err := e2tInstancesManager.ActivateE2TInstance(nil)
328 assert.NotNil(t, err)
329 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
332 func TestResetKeepAliveTimestampGetInternalFailure(t *testing.T) {
333 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
335 address := "10.10.2.15:9800"
336 e2tInstance := entities.NewE2TInstance(address)
337 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, common.NewInternalError(errors.New("Error")))
338 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
340 err := e2tInstancesManager.ResetKeepAliveTimestamp(address)
341 assert.NotNil(t, err)
342 rnibReaderMock.AssertNotCalled(t, "SaveE2TInstance")
345 func TestAResetKeepAliveTimestampSaveInternalFailure(t *testing.T) {
346 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
348 address := "10.10.2.15:9800"
349 e2tInstance := entities.NewE2TInstance(address)
350 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
351 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
353 err := e2tInstancesManager.ResetKeepAliveTimestamp(address)
354 assert.NotNil(t, err)
357 func TestResetKeepAliveTimestampSuccess(t *testing.T) {
358 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
360 address := "10.10.2.15:9800"
361 e2tInstance := entities.NewE2TInstance(address)
362 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
363 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
365 err := e2tInstancesManager.ResetKeepAliveTimestamp(address)
367 rnibReaderMock.AssertCalled(t, "GetE2TInstance", address)
368 rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance", 1)
371 func TestResetKeepAliveTimestampToBeDeleted(t *testing.T) {
372 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
374 address := "10.10.2.15:9800"
375 e2tInstance := entities.NewE2TInstance(address)
376 e2tInstance.State = entities.ToBeDeleted
377 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
379 err := e2tInstancesManager.ResetKeepAliveTimestamp(address)
381 rnibReaderMock.AssertCalled(t, "GetE2TInstance", address)
382 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
385 func TestResetKeepAliveTimestampRoutingManagerFailure(t *testing.T) {
386 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
388 address := "10.10.2.15:9800"
389 e2tInstance := entities.NewE2TInstance(address)
390 e2tInstance.State = entities.RoutingManagerFailure
391 rnibReaderMock.On("GetE2TInstance", address).Return(e2tInstance, nil)
393 err := e2tInstancesManager.ResetKeepAliveTimestamp(address)
395 rnibReaderMock.AssertCalled(t, "GetE2TInstance", address)
396 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
399 func TestRemoveE2TInstance(t *testing.T) {
400 _, _, e2tInstancesManager := initE2TInstancesManagerTest(t)
401 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
402 err := e2tInstancesManager.RemoveE2TInstance(e2tInstance1)
406 func TestResetKeepAliveTimestampsForAllE2TInstancesGetE2TInstancesFailure(t *testing.T) {
407 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
408 rnibReaderMock.On("GetE2TAddresses").Return([]string{}, common.NewInternalError(errors.New("Error")))
409 e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
410 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
413 func TestResetKeepAliveTimestampsForAllE2TInstancesNoInstances(t *testing.T) {
414 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
415 rnibReaderMock.On("GetE2TAddresses").Return([]string{}, nil)
416 e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
417 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
420 func TestResetKeepAliveTimestampsForAllE2TInstancesNoActiveInstances(t *testing.T) {
421 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
422 e2tAddresses := []string{E2TAddress, E2TAddress2}
423 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
424 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
425 e2tInstance1.State = entities.ToBeDeleted
426 e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
427 e2tInstance2.State = entities.RoutingManagerFailure
428 rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
429 e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
430 rnibWriterMock.AssertNotCalled(t, "SaveE2TInstance")
433 func TestResetKeepAliveTimestampsForAllE2TInstancesOneActiveInstance(t *testing.T) {
434 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
435 e2tAddresses := []string{E2TAddress, E2TAddress2}
436 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
437 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
438 e2tInstance1.State = entities.Active
439 e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
440 e2tInstance2.State = entities.ToBeDeleted
441 rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
442 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(nil)
443 e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
444 rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance",1)
447 func TestResetKeepAliveTimestampsForAllE2TInstancesSaveE2TInstanceFailure(t *testing.T) {
448 rnibReaderMock, rnibWriterMock, e2tInstancesManager := initE2TInstancesManagerTest(t)
449 e2tAddresses := []string{E2TAddress, E2TAddress2}
450 rnibReaderMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
451 e2tInstance1 := entities.NewE2TInstance(E2TAddress)
452 e2tInstance1.State = entities.Active
453 e2tInstance2 := entities.NewE2TInstance(E2TAddress2)
454 e2tInstance2.State = entities.ToBeDeleted
455 rnibReaderMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{e2tInstance1, e2tInstance2}, nil)
456 rnibWriterMock.On("SaveE2TInstance", mock.Anything).Return(common.NewInternalError(errors.New("Error")))
457 e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
458 rnibWriterMock.AssertNumberOfCalls(t, "SaveE2TInstance",1)