+ err := ranListManager.InitNbIdentityMap()
+ if err != nil {
+ t.Errorf("Error cannot init identity")
+ }
+
+ updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb1).Return(nil)
+ updatedNb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb2).Return(nil)
+ updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb3).Return(nil)
+ updatedNb4 := &entities.NodebInfo{RanName: "RanName_4", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb4).Return(nil)
+ updatedNb5 := &entities.NodebInfo{RanName: "RanName_5", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb5).Return(nil)
+ updatedNb6 := &entities.NodebInfo{RanName: "RanName_6", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}
+ writerMock.On("UpdateNodebInfo", updatedNb6).Return(nil)
+
+ readerMock.On("GetE2TAddresses").Return(e2tAddresses, nil)
+ e2tInstance := entities.E2TInstance{Address: E2TAddress, AssociatedRanList: []string{"RanName_1", "RanName_2", "RanName_3"}}
+ e2tInstance2 := entities.E2TInstance{Address: E2TAddress2, AssociatedRanList: []string{"RanName_4", "RanName_5", "RanName_6"}}
+ readerMock.On("GetE2TInstances", e2tAddresses).Return([]*entities.E2TInstance{&e2tInstance, &e2tInstance2}, nil)
+ updatedE2tInstance := e2tInstance
+ updatedE2tInstance.AssociatedRanList = []string{}
+ updatedE2tInstance2 := e2tInstance2
+ updatedE2tInstance2.AssociatedRanList = []string{}
+ writerMock.On("SaveE2TInstance", &updatedE2tInstance).Return(nil)
+ writerMock.On("SaveE2TInstance", &updatedE2tInstance2).Return(nil)
+
+ rmrMessage := models.RmrMessage{MsgType: rmrCgo.RIC_SCTP_CLEAR_ALL}
+ mbuf := rmrCgo.NewMBuf(rmrMessage.MsgType, len(rmrMessage.Payload), rmrMessage.RanName, &rmrMessage.Payload, &rmrMessage.XAction, rmrMessage.GetMsgSrc())
+ rmrMessengerMock.On("SendMsg", mbuf, true).Return(mbuf, nil)
+
+ readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
+ readerMock.On("GetNodeb", "RanName_1").Return(updatedNb1, nil)
+ readerMock.On("GetNodeb", "RanName_2").Return(updatedNb2, nil)
+ readerMock.On("GetNodeb", "RanName_3").Return(updatedNb3, nil)
+ readerMock.On("GetNodeb", "RanName_4").Return(updatedNb4, nil)
+ readerMock.On("GetNodeb", "RanName_5").Return(updatedNb5, nil)
+ readerMock.On("GetNodeb", "RanName_6").Return(updatedNb6, nil)
+
+ updatedNb1AfterTimer := *updatedNb1
+ updatedNb1AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb1AfterTimer).Return(nil)
+ updatedNb2AfterTimer := *updatedNb2
+ updatedNb2AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb2AfterTimer).Return(nil)
+ updatedNb3AfterTimer := *updatedNb3
+ updatedNb3AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb3AfterTimer).Return(nil)
+ updatedNb4AfterTimer := *updatedNb4
+ updatedNb4AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb4AfterTimer).Return(nil)
+ updatedNb5AfterTimer := *updatedNb5
+ updatedNb5AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb5AfterTimer).Return(nil)
+ updatedNb6AfterTimer := *updatedNb6
+ updatedNb6AfterTimer.ConnectionStatus = entities.ConnectionStatus_SHUT_DOWN
+ writerMock.On("UpdateNodebInfo", &updatedNb6AfterTimer).Return(nil)
+ _, err = h.Handle(nil)
+ assert.Nil(t, err)
+ rmrMessengerMock.AssertCalled(t, "SendMsg", mbuf, true)
+ readerMock.AssertExpectations(t)
+ writerMock.AssertExpectations(t)
+ writerMock.AssertNumberOfCalls(t, "UpdateNodebInfo", 18)