}
func mockHttpClientAssociateRan(httpClientMock *mocks.HttpClientMock) {
- data := models.NewRoutingManagerE2TData(E2TAddress, RanName)
+ data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)}
marshaled, _ := json.Marshal(data)
body := bytes.NewBuffer(marshaled)
url := BaseRMUrl + clients.AssociateRanToE2TInstanceApiSuffix
e2tInstancesManagerMock.On("SelectE2TInstance").Return("", e2managererrors.NewRnibDbError())
_, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
assert.IsType(t, &e2managererrors.RnibDbError{}, err)
- e2tInstancesManagerMock.AssertNotCalled(t, "AddRanToInstance")
+ e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance")
writerMock.AssertNotCalled(t, "SaveNodeb")
ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
}
readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, httpClientMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- nbIdentity := &entities.NbIdentity{InventoryName: RanName}
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
+ setupRequest := &models.SetupRequest{"127.0.0.1", 8080, RanName,}
+ nb, nbIdentity := createInitialNodeInfo(setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
writerMock.On("SaveNodeb", nbIdentity, mock.Anything).Return(nil)
- _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
- assert.IsType(t, &common.ResourceNotFoundError{}, err)
+ nb.AssociatedE2TInstanceAddress = E2TAddress
+ nb.ConnectionAttempts = 0
+ writerMock.On("UpdateNodebInfo", nb).Return(nil)
+ _, err := handler.Handle(*setupRequest)
+ assert.IsType(t, &e2managererrors.RnibDbError{}, err)
writerMock.AssertExpectations(t)
readerMock.AssertExpectations(t)
e2tInstancesManagerMock.AssertExpectations(t)
readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
- nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
+ nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(common.NewInternalError(fmt.Errorf("")))
_, err := handler.Handle(setupRequest)
assert.IsType(t, &e2managererrors.RnibDbError{}, err)
readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
- nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
+ nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
- ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRnibDbError())
+ updatedNb := *nodebInfo
+ updatedNb.ConnectionAttempts = 0
+ updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+ writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
_, err := handler.Handle(setupRequest)
- assert.IsType(t, &common.ResourceNotFoundError{}, err)
+ assert.IsType(t, &e2managererrors.RnibDbError{}, err)
+ readerMock.AssertExpectations(t)
+ writerMock.AssertExpectations(t)
+ ranSetupManagerMock.AssertExpectations(t)
}
func TestSetupNewRanSetupRmrError(t *testing.T) {
readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
- nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
+ nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
- ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRmrError())
+ updatedNb := *nodebInfo
+ updatedNb.ConnectionAttempts = 0
+ updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+ writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
+ ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRmrError())
_, err := handler.Handle(setupRequest)
- assert.IsType(t, /* &e2managererrors.RmrError{} */ &common.ResourceNotFoundError{}, err)
+ assert.IsType(t, &e2managererrors.RmrError{}, err)
}
func TestSetupNewRanSetupSuccess(t *testing.T) {
readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
setupRequest := models.SetupRequest{"127.0.0.1", 8080, RanName,}
- nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST, E2TAddress)
+ nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
- ranSetupManagerMock.On("ExecuteSetup", nodebInfo, entities.ConnectionStatus_CONNECTING).Return(nil)
+ updatedNb := *nodebInfo
+ updatedNb.ConnectionAttempts = 0
+ updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+ writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
+ ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
_, err := handler.Handle(setupRequest)
- //assert.Nil(t, err)
- assert.IsType(t, /* &e2managererrors.RnibDbError{} */ &common.ResourceNotFoundError{}, err)
+ assert.Nil(t, err)
}
func TestX2SetupExistingRanShuttingDown(t *testing.T) {
nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
readerMock.On("GetNodeb", RanName).Return(nb, nil)
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(e2managererrors.NewRnibDbError())
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
_, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
assert.IsType(t, &e2managererrors.RnibDbError{}, err)
nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
readerMock.On("GetNodeb", RanName).Return(nb, nil)
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
updatedNb := *nb
updatedNb.AssociatedE2TInstanceAddress = E2TAddress
updatedNb.ConnectionAttempts = 0
nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
readerMock.On("GetNodeb", RanName).Return(nb, nil)
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
updatedNb := *nb
updatedNb.AssociatedE2TInstanceAddress = E2TAddress
updatedNb.ConnectionAttempts = 0
nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
readerMock.On("GetNodeb", RanName).Return(nb, nil)
e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
- e2tInstancesManagerMock.On("AddRanToInstance", RanName, E2TAddress).Return(nil)
+ e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
updatedNb := *nb
updatedNb.AssociatedE2TInstanceAddress = E2TAddress
updatedNb.ConnectionAttempts = 0
_, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
assert.IsType(t, &e2managererrors.RnibDbError{}, err)
e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
- e2tInstancesManagerMock.AssertNotCalled(t, "AddRanToInstance")
+ e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance")
ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
}
_, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
assert.Nil(t, err)
e2tInstancesManagerMock.AssertNotCalled(t, "SelectE2TInstance")
- e2tInstancesManagerMock.AssertNotCalled(t, "AddRanToInstance")
+ e2tInstancesManagerMock.AssertNotCalled(t, "AddRansToInstance")
+}
+
+func TestSetupExistingRanWithoutAssocE2TInstanceExecuteRoutingManagerError(t *testing.T) {
+ readerMock, writerMock, handler, _, httpClientMock := initSetupRequestTestBasicMocks(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+ nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: "", ConnectionStatus: entities.ConnectionStatus_CONNECTED, E2ApplicationProtocol:entities.E2ApplicationProtocol_X2_SETUP_REQUEST}
+ readerMock.On("GetNodeb", RanName).Return(nb, nil)
+ addresses := []string{E2TAddress}
+ readerMock.On("GetE2TAddresses").Return(addresses, nil)
+ e2tInstance := &entities.E2TInstance{Address: E2TAddress, State: entities.Active}
+ readerMock.On("GetE2TInstances", addresses).Return([]*entities.E2TInstance{e2tInstance}, nil)
+
+ data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)}
+ marshaled, _ := json.Marshal(data)
+ body := bytes.NewBuffer(marshaled)
+ respBody := ioutil.NopCloser(bytes.NewBufferString(""))
+ httpClientMock.On("Post", clients.AssociateRanToE2TInstanceApiSuffix, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil)
+
+ _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
+ assert.IsType(t, &e2managererrors.RoutingManagerError{}, err)
+ writerMock.AssertExpectations(t)
+ readerMock.AssertExpectations(t)
+ httpClientMock.AssertExpectations(t)
}