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.
17 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 // platform project (RICP).
21 package httpmsghandlers
25 "e2mgr/e2managererrors"
30 "e2mgr/services/rmrsender"
33 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
34 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
35 "github.com/stretchr/testify/assert"
36 "github.com/stretchr/testify/mock"
41 func setupTest(t *testing.T) (*logger.Logger, *configuration.Configuration, *mocks.RnibReaderMock, *mocks.RnibWriterMock, services.RNibDataService, *mocks.RmrMessengerMock) {
43 config := configuration.ParseConfiguration()
45 readerMock := &mocks.RnibReaderMock{}
47 writerMock := &mocks.RnibWriterMock{}
49 rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock)
50 rmrMessengerMock := &mocks.RmrMessengerMock{}
51 return log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock
54 func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T) {
55 log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t)
57 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
59 rnibErr := &common.ResourceNotFoundError{}
60 var nbIdentityList []*entities.NbIdentity
61 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr)
63 expected := &e2managererrors.RnibDbError{}
64 _, actual := handler.Handle(nil)
65 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
66 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
70 func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T) {
71 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
73 config.BigRedButtonTimeoutSec = 1
75 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
77 rnibErr := &common.ResourceNotFoundError{}
78 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
79 nbIdentityList := createIdentityList()
81 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil).Return(nbIdentityList, rnibErr)
83 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
84 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
85 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
86 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
87 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
88 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
90 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
91 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
92 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
93 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
95 expected := &e2managererrors.RnibDbError{}
96 _, actual := handler.Handle(nil)
98 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
99 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
103 func TestHandleSuccessFlow(t *testing.T) {
104 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
106 config.BigRedButtonTimeoutSec = 1
107 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
109 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
110 nbIdentityList := createIdentityList()
111 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
113 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
114 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
115 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
116 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
117 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
118 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
120 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
121 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
122 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
123 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
125 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
126 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
128 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
129 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
130 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
131 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
132 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
133 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
135 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
136 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
137 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
138 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
140 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
141 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, nil)
143 _, actual := handler.Handle(nil)
145 assert.Nil(t, actual)
148 func TestHandleSuccessGetNextStatusFlow(t *testing.T) {
149 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
151 config.BigRedButtonTimeoutSec = 1
152 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
154 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
155 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
157 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
158 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
160 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
161 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
163 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
164 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
166 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
167 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
169 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
170 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
172 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
173 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, nil)
175 _, actual := handler.Handle(nil)
177 assert.Nil(t, actual)
180 func TestHandleShuttingDownStatusFlow(t *testing.T) {
181 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
183 config.BigRedButtonTimeoutSec = 1
184 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
186 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
187 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
189 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
190 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
192 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
193 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
195 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
196 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
198 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
199 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
201 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
202 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, nil)
204 _, actual := handler.Handle(nil)
206 assert.Nil(t, actual)
209 func TestHandleGetNodebFailedFlow(t *testing.T) {
210 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
212 config.BigRedButtonTimeoutSec = 1
213 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
215 //Before timer: Disconnected->ShutDown(will fail), ShuttingDown->Ignore, Connected->ShuttingDown
216 nbIdentityList := createIdentityList()
217 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
219 errRnib := &common.ResourceNotFoundError{}
220 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
221 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
222 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
223 readerMock.On("GetNodeb", "RanName_1").Return(nb1, errRnib)
224 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
225 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
227 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
228 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
229 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(errRnib)
230 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
232 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
233 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
235 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
236 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
237 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
238 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, errRnib)
239 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
240 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
242 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
243 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
244 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
245 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
247 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
248 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, nil)
250 _, actual := handler.Handle(nil)
252 assert.Nil(t, actual)
255 func TestHandleSaveFailedFlow(t *testing.T) {
256 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
258 config.BigRedButtonTimeoutSec = 1
259 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
261 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
262 nbIdentityList := createIdentityList()
263 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
265 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
266 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
267 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
268 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
269 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
270 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
272 errRnib := &common.ResourceNotFoundError{}
273 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
274 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
275 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
276 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(errRnib)
278 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
279 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
281 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
282 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
283 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
284 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
285 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
286 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
288 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
289 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
290 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
291 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(errRnib)
293 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
294 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, nil)
296 _, actual := handler.Handle(nil)
298 assert.Nil(t, actual)
301 func TestHandleSendRmrFailedFlow(t *testing.T) {
302 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
304 config.BigRedButtonTimeoutSec = 1
305 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
307 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
308 nbIdentityList := createIdentityList()
309 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
311 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
312 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
313 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
314 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
315 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
316 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
318 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
319 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
320 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
321 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
323 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
324 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
326 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
327 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
328 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
329 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
330 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
331 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
333 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
334 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
335 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
336 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
338 expected := e2managererrors.NewRmrError()
339 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
340 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf)), true).Return(mbuf, expected)
342 _, actual := handler.Handle(nil)
344 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
345 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
349 func TestHandleGetListEnbIdsEmptyFlow(t *testing.T) {
350 log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t)
352 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
355 nbIdentityList := []*entities.NbIdentity{}
357 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError)
359 _, actual := handler.Handle(nil)
360 readerMock.AssertNumberOfCalls(t, "GetNodeb", 0)
361 assert.Nil(t, actual)
364 func createIdentityList() []*entities.NbIdentity {
365 nbIdentity1 := entities.NbIdentity{InventoryName: "RanName_1"}
366 nbIdentity2 := entities.NbIdentity{InventoryName: "RanName_2"}
367 nbIdentity3 := entities.NbIdentity{InventoryName: "RanName_3"}
369 var nbIdentityList []*entities.NbIdentity
370 nbIdentityList = append(nbIdentityList, &nbIdentity1)
371 nbIdentityList = append(nbIdentityList, &nbIdentity2)
372 nbIdentityList = append(nbIdentityList, &nbIdentity3)
374 return nbIdentityList
377 func initLog(t *testing.T) *logger.Logger {
378 log, err := logger.InitLogger(logger.InfoLevel)
380 t.Errorf("#initLog test - failed to initialize logger, error: %s", err)
385 func getRmrSender(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *rmrsender.RmrSender {
386 rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
387 rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
388 return rmrsender.NewRmrSender(log, rmrMessenger)