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 package httpmsghandlers
21 "e2mgr/e2managererrors"
26 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
27 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
28 "github.com/stretchr/testify/assert"
32 const E2TAddress = "10.0.2.15:8989"
33 const RanName = "test"
35 func initSetupRequestTest(t *testing.T, protocol entities.E2ApplicationProtocol) (*mocks.RnibReaderMock, *mocks.RnibWriterMock, *SetupRequestHandler, *mocks.E2TInstancesManagerMock, *mocks.RanSetupManagerMock) {
37 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
39 readerMock := &mocks.RnibReaderMock{}
40 writerMock := &mocks.RnibWriterMock{}
42 rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock)
44 ranSetupManagerMock := &mocks.RanSetupManagerMock{}
45 e2tInstancesManagerMock := &mocks.E2TInstancesManagerMock{}
46 handler := NewSetupRequestHandler(log, rnibDataService, ranSetupManagerMock, protocol, e2tInstancesManagerMock)
48 return readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock
51 func TestX2SetupHandleNoPortError(t *testing.T) {
52 readerMock, _, handler, _, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
54 sr := models.SetupRequest{"127.0.0.1", 0, RanName,}
55 _, err := handler.Handle(sr)
56 assert.IsType(t, &e2managererrors.RequestValidationError{}, err)
57 readerMock.AssertNotCalled(t, "GetNodeb")
60 func TestX2SetupHandleNoRanNameError(t *testing.T) {
61 readerMock, _, handler, _, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
63 sr := models.SetupRequest{RanPort: 8080, RanIp: "127.0.0.1"}
64 _, err := handler.Handle(sr)
65 assert.IsType(t, &e2managererrors.RequestValidationError{}, err)
66 readerMock.AssertNotCalled(t, "GetNodeb")
69 func TestX2SetupHandleNoIpError(t *testing.T) {
70 readerMock, _, handler, _, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
72 sr := models.SetupRequest{RanPort: 8080, RanName: RanName}
73 _, err := handler.Handle(sr)
74 assert.IsType(t, &e2managererrors.RequestValidationError{}, err)
75 readerMock.AssertNotCalled(t, "GetNodeb")
78 func TestX2SetupHandleInvalidIpError(t *testing.T) {
79 readerMock, _, handler, _, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
81 sr := models.SetupRequest{RanPort: 8080, RanName: RanName, RanIp: "invalid ip"}
82 _, err := handler.Handle(sr)
83 assert.IsType(t, &e2managererrors.RequestValidationError{}, err)
84 readerMock.AssertNotCalled(t, "GetNodeb")
87 func TestSetupGetNodebFailure(t *testing.T) {
88 readerMock, _, handler, _, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
90 rnibErr := &common.ValidationError{}
91 nb := &entities.NodebInfo{RanName: RanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN,}
92 readerMock.On("GetNodeb", RanName).Return(nb, rnibErr)
94 sr := models.SetupRequest{"127.0.0.1", 8080, RanName,}
95 _, err := handler.Handle(sr)
96 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
99 func TestSetupNewRanSelectE2TInstancesDbError(t *testing.T) {
100 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
101 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
102 e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewRnibDbError())
103 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
104 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
105 e2tInstancesManagerMock.AssertNotCalled(t, "AssociateRan")
106 writerMock.AssertNotCalled(t, "SaveNodeb")
107 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
110 func TestSetupNewRanSelectE2TInstancesNoInstances(t *testing.T) {
111 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
112 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
113 e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewE2TInstanceAbsenceError())
114 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
115 assert.IsType(t, &e2managererrors.E2TInstanceAbsenceError{}, err)
116 e2tInstancesManagerMock.AssertNotCalled(t, "AssociateRan")
117 writerMock.AssertNotCalled(t, "SaveNodeb")
118 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
121 func TestSetupNewRanAssociateRanFailure(t *testing.T) {
122 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
123 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
124 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
125 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(e2managererrors.NewRnibDbError())
126 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
127 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
128 writerMock.AssertNotCalled(t, "SaveNodeb")
129 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
132 func TestSetupNewRanSaveNodebFailure(t *testing.T) {
133 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
134 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
135 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
136 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
137 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
138 nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
139 writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(common.NewInternalError(fmt.Errorf("")))
140 _, err := handler.Handle(setupRequest)
141 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
142 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
145 func TestSetupNewRanSetupDbError(t *testing.T) {
146 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
147 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
148 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
149 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
150 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
151 nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
152 writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
153 ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRnibDbError())
154 _, err := handler.Handle(setupRequest)
155 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
158 func TestSetupNewRanSetupRmrError(t *testing.T) {
159 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
160 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
161 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
162 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
163 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
164 nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
165 writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
166 ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRmrError())
167 _, err := handler.Handle(setupRequest)
168 assert.IsType(t, &e2managererrors.RmrError{}, err)
171 func TestSetupNewRanSetupSuccess(t *testing.T) {
172 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
173 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
174 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
175 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
176 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
177 nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
178 writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
179 ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(nil)
180 _, err := handler.Handle(setupRequest)
184 func TestX2SetupExistingRanShuttingDown(t *testing.T) {
185 readerMock, _, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
186 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{RanName: RanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}, nil)
187 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
188 _, err := handler.Handle(setupRequest)
189 assert.IsType(t, &e2managererrors.WrongStateError{}, err)
190 e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
191 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
194 func TestEndcSetupExistingRanShuttingDown(t *testing.T) {
195 readerMock, _, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_ENDC_X2_SETUP_REQUEST)
196 readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{RanName: RanName, ConnectionStatus: entities.ConnectionStatus_SHUTTING_DOWN}, nil)
197 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
198 _, err := handler.Handle(setupRequest)
199 assert.IsType(t, &e2managererrors.WrongStateError{}, err)
200 e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
201 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
204 func TestSetupExistingRanWithoutAssocE2TInstanceSelectDbError(t *testing.T) {
205 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
206 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
207 readerMock.On("GetNodeb", RanName).Return(nb , nil)
208 e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewRnibDbError())
210 updatedNb.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED
211 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
212 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
213 _, err := handler.Handle(setupRequest)
214 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
215 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
218 func TestSetupExistingRanWithoutAssocE2TInstanceSelectNoInstanceError(t *testing.T) {
219 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
220 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
221 readerMock.On("GetNodeb", RanName).Return(nb , nil)
222 e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewE2TInstanceAbsenceError())
224 updatedNb.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED
225 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
226 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
227 _, err := handler.Handle(setupRequest)
228 assert.IsType(t, &e2managererrors.E2TInstanceAbsenceError{}, err)
229 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
232 func TestSetupExistingRanWithoutAssocE2TInstanceSelectNoInstanceErrorUpdateFailure(t *testing.T) {
233 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
234 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
235 readerMock.On("GetNodeb", RanName).Return(nb , nil)
236 e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewE2TInstanceAbsenceError())
238 updatedNb.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED
239 writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
240 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
241 _, err := handler.Handle(setupRequest)
242 assert.IsType(t, &e2managererrors.E2TInstanceAbsenceError{}, err)
243 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
246 func TestSetupExistingRanWithoutAssocE2TInstanceSelectErrorAlreadyDisconnected(t *testing.T) {
247 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
248 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:"", ConnectionStatus:entities.ConnectionStatus_DISCONNECTED}
249 readerMock.On("GetNodeb", RanName).Return(nb , nil)
250 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, e2managererrors.NewE2TInstanceAbsenceError())
251 setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
252 _, err := handler.Handle(setupRequest)
253 assert.IsType(t, &e2managererrors.E2TInstanceAbsenceError{}, err)
254 writerMock.AssertNotCalled(t, "UpdateNodebInfo")
255 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
258 func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanFailure(t *testing.T) {
259 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
260 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
261 readerMock.On("GetNodeb", RanName).Return(nb , nil)
262 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
263 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(e2managererrors.NewRnibDbError())
264 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
265 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
266 writerMock.AssertNotCalled(t, "UpdateNodebInfo")
267 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
270 func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanSucceedsUpdateNodebFails(t *testing.T) {
271 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
272 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
273 readerMock.On("GetNodeb", RanName).Return(nb , nil)
274 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
275 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
277 updatedNb.AssociatedE2TInstanceAddress = E2TAddress
278 updatedNb.ConnectionAttempts = 0
279 writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
280 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
281 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
282 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
285 func TestSetupExistingRanWithoutAssocE2TInstanceExecuteSetupFailure(t *testing.T) {
286 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
287 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
288 readerMock.On("GetNodeb", RanName).Return(nb , nil)
289 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
290 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
292 updatedNb.AssociatedE2TInstanceAddress = E2TAddress
293 updatedNb.ConnectionAttempts = 0
294 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
295 ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRnibDbError())
296 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
297 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
300 func TestSetupExistingRanWithoutAssocE2TInstanceSuccess(t *testing.T) {
301 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
302 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:""}
303 readerMock.On("GetNodeb", RanName).Return(nb , nil)
304 e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
305 e2tInstancesManagerMock.On("AssociateRan", RanName, E2TAddress).Return(nil)
307 updatedNb.AssociatedE2TInstanceAddress = E2TAddress
308 updatedNb.ConnectionAttempts = 0
309 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
310 ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
311 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
315 func TestSetupExistingRanWithAssocE2TInstanceUpdateNodebFailure(t *testing.T) {
316 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
317 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:E2TAddress}
318 readerMock.On("GetNodeb", RanName).Return(nb , nil)
320 updatedNb.ConnectionAttempts = 0
321 writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
322 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
323 assert.IsType(t, &e2managererrors.RnibDbError{}, err)
324 e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
325 e2tInstancesManagerMock.AssertNotCalled(t, "AssociateRan")
326 ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
329 func TestSetupExistingRanWithAssocE2TInstanceExecuteSetupRmrError(t *testing.T) {
330 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
331 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:E2TAddress, ConnectionStatus: entities.ConnectionStatus_CONNECTED}
332 readerMock.On("GetNodeb", RanName).Return(nb , nil)
334 updatedNb.ConnectionAttempts = 0
335 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
336 ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTED).Return(e2managererrors.NewRmrError())
337 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
338 assert.IsType(t, &e2managererrors.RmrError{}, err)
339 e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
340 e2tInstancesManagerMock.AssertNotCalled(t, "AssociateRan")
343 func TestSetupExistingRanWithAssocE2TInstanceConnectedSuccess(t *testing.T) {
344 readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
345 nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress:E2TAddress, ConnectionStatus: entities.ConnectionStatus_CONNECTED}
346 readerMock.On("GetNodeb", RanName).Return(nb , nil)
348 updatedNb.ConnectionAttempts = 0
349 writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
350 ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTED).Return(nil)
351 _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
353 e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
354 e2tInstancesManagerMock.AssertNotCalled(t, "AssociateRan")