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.
18 package httpmsghandlers
22 "e2mgr/e2managererrors"
28 "e2mgr/services/rmrsender"
31 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
32 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
33 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
34 "github.com/stretchr/testify/assert"
35 "github.com/stretchr/testify/mock"
40 func setupTest(t *testing.T) (*logger.Logger, *configuration.Configuration, *mocks.RnibReaderMock, *mocks.RnibWriterMock, services.RNibDataService, *mocks.RmrMessengerMock) {
42 config := configuration.ParseConfiguration()
44 readerMock := &mocks.RnibReaderMock{}
45 readerProvider := func() reader.RNibReader {
48 writerMock := &mocks.RnibWriterMock{}
49 writerProvider := func() rNibWriter.RNibWriter {
52 rnibDataService := services.NewRnibDataService(log, config, readerProvider, writerProvider)
53 rmrMessengerMock := &mocks.RmrMessengerMock{}
54 return log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock
57 func TestHandleBeforeTimerGetListNodebIdsFailedFlow(t *testing.T) {
58 log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t)
60 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
62 rnibErr := &common.ResourceNotFoundError{}
63 var nbIdentityList []*entities.NbIdentity
64 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibErr)
66 expected := &e2managererrors.RnibDbError{}
67 _, actual := handler.Handle(nil)
68 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
69 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
73 func TestHandleAfterTimerGetListNodebIdsFailedFlow(t *testing.T) {
74 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
76 config.BigRedButtonTimeoutSec = 1
78 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
80 rnibErr := &common.ResourceNotFoundError{}
81 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
82 nbIdentityList := createIdentityList()
84 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil).Return(nbIdentityList, rnibErr)
86 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
87 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
88 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
89 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
90 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
91 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
93 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
94 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
95 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
96 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
98 expected := &e2managererrors.RnibDbError{}
99 _, actual := handler.Handle(nil)
101 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
102 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
106 func TestHandleSuccessFlow(t *testing.T) {
107 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
109 config.BigRedButtonTimeoutSec = 1
110 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
112 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown
113 nbIdentityList := createIdentityList()
114 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
116 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
117 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
118 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
119 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
120 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
121 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
123 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
124 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
125 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
126 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
128 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
129 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
131 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
132 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
133 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
134 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
135 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
136 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
138 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
139 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
140 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
141 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
143 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
144 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil)
146 _, actual := handler.Handle(nil)
148 assert.Nil(t, actual)
151 func TestHandleSuccessGetNextStatusFlow(t *testing.T) {
152 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
154 config.BigRedButtonTimeoutSec = 1
155 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
157 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
158 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
160 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
161 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
163 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
164 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
166 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
167 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
169 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
170 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
172 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
173 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
175 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
176 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil)
178 _, actual := handler.Handle(nil)
180 assert.Nil(t, actual)
183 func TestHandleShuttingDownStatusFlow(t *testing.T) {
184 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
186 config.BigRedButtonTimeoutSec = 1
187 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
189 nbIdentityList := []*entities.NbIdentity{{InventoryName: "RanName_1"}}
190 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
192 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
193 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
195 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
196 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
198 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
199 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
201 updatedNb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
202 writerMock.On("SaveNodeb", mock.Anything, updatedNb1AfterTimer).Return(nil)
204 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
205 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil)
207 _, actual := handler.Handle(nil)
209 assert.Nil(t, actual)
212 func TestHandleGetNodebFailedFlow(t *testing.T) {
213 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
215 config.BigRedButtonTimeoutSec = 1
216 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
218 //Before timer: Disconnected->ShutDown(will fail), ShuttingDown->Ignore, Connected->ShuttingDown
219 nbIdentityList := createIdentityList()
220 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
222 errRnib := &common.ResourceNotFoundError{}
223 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
224 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
225 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
226 readerMock.On("GetNodeb", "RanName_1").Return(nb1, errRnib)
227 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
228 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
230 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
231 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
232 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(errRnib)
233 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
235 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown
236 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
238 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
239 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
240 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
241 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, errRnib)
242 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
243 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
245 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
246 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
247 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
248 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
250 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
251 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil)
253 _, actual := handler.Handle(nil)
255 assert.Nil(t, actual)
258 func TestHandleSaveFailedFlow(t *testing.T) {
259 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
261 config.BigRedButtonTimeoutSec = 1
262 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
264 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
265 nbIdentityList := createIdentityList()
266 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
268 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
269 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
270 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
271 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
272 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
273 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
275 errRnib := &common.ResourceNotFoundError{}
276 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
277 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
278 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
279 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(errRnib)
281 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
282 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
284 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
285 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
286 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
287 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
288 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
289 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
291 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
292 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
293 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
294 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(errRnib)
296 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
297 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, nil)
299 _, actual := handler.Handle(nil)
301 assert.Nil(t, actual)
304 func TestHandleSendRmrFailedFlow(t *testing.T) {
305 log, config, readerMock, writerMock, rnibDataService, rmrMessengerMock := setupTest(t)
307 config.BigRedButtonTimeoutSec = 1
308 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
310 //Before timer: Disconnected->ShutDown, ShuttingDown->Ignore, Connected->ShuttingDown(will fail)
311 nbIdentityList := createIdentityList()
312 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
314 nb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,}
315 nb2 := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
316 nb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_CONNECTED,}
317 readerMock.On("GetNodeb", "RanName_1").Return(nb1, nil)
318 readerMock.On("GetNodeb", "RanName_2").Return(nb2, nil)
319 readerMock.On("GetNodeb", "RanName_3").Return(nb3, nil)
321 updatedNb1 := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
322 updatedNb3 := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
323 writerMock.On("SaveNodeb", mock.Anything, updatedNb1).Return(nil)
324 writerMock.On("SaveNodeb", mock.Anything, updatedNb3).Return(nil)
326 //after timer: ShutDown->Ignore, ShuttingDown->ShutDown(will fail)
327 readerMock.On("GetListNodebIds").Return(nbIdentityList, nil)
329 nb1AfterTimer := &entities.NodebInfo{RanName: "RanName_1", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
330 nb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
331 nb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
332 readerMock.On("GetNodeb", "RanName_1").Return(nb1AfterTimer, nil)
333 readerMock.On("GetNodeb", "RanName_2").Return(nb2AfterTimer, nil)
334 readerMock.On("GetNodeb", "RanName_3").Return(nb3AfterTimer, nil)
336 updatedNb2AfterTimer := &entities.NodebInfo{RanName: "RanName_2", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
337 updatedNb3AfterTimer := &entities.NodebInfo{RanName: "RanName_3", ConnectionStatus: entities.ConnectionStatus_SHUT_DOWN,}
338 writerMock.On("SaveNodeb", mock.Anything, updatedNb2AfterTimer).Return(nil)
339 writerMock.On("SaveNodeb", mock.Anything, updatedNb3AfterTimer).Return(nil)
341 expected := e2managererrors.NewRmrError()
342 mbuf := rmrCgo.NewMBuf(tests.MessageType, tests.MaxMsgSize, "RanName", &tests.DummyPayload, &tests.DummyXAction)
343 rmrMessengerMock.On("SendMsg", mock.AnythingOfType(fmt.Sprintf("%T", mbuf))).Return(mbuf, expected)
345 _, actual := handler.Handle(nil)
347 if reflect.TypeOf(actual) != reflect.TypeOf(expected) {
348 t.Errorf("Error actual = %v, and Expected = %v.", actual, expected)
352 func TestHandleGetListEnbIdsEmptyFlow(t *testing.T) {
353 log, config, readerMock, _, rnibDataService, rmrMessengerMock := setupTest(t)
355 handler := NewDeleteAllRequestHandler(log, getRmrSender(rmrMessengerMock, log), config, rnibDataService)
358 nbIdentityList := []*entities.NbIdentity{}
360 readerMock.On("GetListNodebIds").Return(nbIdentityList, rnibError)
362 _, actual := handler.Handle(nil)
363 readerMock.AssertNumberOfCalls(t, "GetNodeb", 0)
364 assert.Nil(t, actual)
367 func createIdentityList() []*entities.NbIdentity {
368 nbIdentity1 := entities.NbIdentity{InventoryName: "RanName_1"}
369 nbIdentity2 := entities.NbIdentity{InventoryName: "RanName_2"}
370 nbIdentity3 := entities.NbIdentity{InventoryName: "RanName_3"}
372 var nbIdentityList []*entities.NbIdentity
373 nbIdentityList = append(nbIdentityList, &nbIdentity1)
374 nbIdentityList = append(nbIdentityList, &nbIdentity2)
375 nbIdentityList = append(nbIdentityList, &nbIdentity3)
377 return nbIdentityList
380 func initLog(t *testing.T) *logger.Logger {
381 log, err := logger.InitLogger(logger.InfoLevel)
383 t.Errorf("#initLog test - failed to initialize logger, error: %s", err)
388 func getRmrSender(rmrMessengerMock *mocks.RmrMessengerMock, log *logger.Logger) *rmrsender.RmrSender {
389 rmrMessenger := rmrCgo.RmrMessenger(rmrMessengerMock)
390 rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
391 return rmrsender.NewRmrSender(log, &rmrMessenger)