X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fdelete_enb_request_handler_test.go;h=67346184f8de9102aa6becc7eec87e8b337420d1;hb=refs%2Fchanges%2F59%2F4459%2F1;hp=2c47919d0502a036ea835cf1beb21ec442c5a6ab;hpb=c7018fe32516829bc267efcc5a20818355768762;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/httpmsghandlers/delete_enb_request_handler_test.go b/E2Manager/handlers/httpmsghandlers/delete_enb_request_handler_test.go index 2c47919..6734618 100644 --- a/E2Manager/handlers/httpmsghandlers/delete_enb_request_handler_test.go +++ b/E2Manager/handlers/httpmsghandlers/delete_enb_request_handler_test.go @@ -22,6 +22,7 @@ package httpmsghandlers import ( "e2mgr/configuration" + "e2mgr/managers" "e2mgr/mocks" "e2mgr/models" "e2mgr/services" @@ -32,36 +33,61 @@ import ( "testing" ) -func setupDeleteEnbRequestHandlerTest(t *testing.T) (*DeleteEnbRequestHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock) { +func setupDeleteEnbRequestHandlerTest(t *testing.T, emptyList bool) (*DeleteEnbRequestHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock) { log := initLog(t) config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3} readerMock := &mocks.RnibReaderMock{} writerMock := &mocks.RnibWriterMock{} rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock) - handler := NewDeleteEnbRequestHandler(log, rnibDataService) + ranListManager := managers.NewRanListManager(log, rnibDataService) + if !emptyList { + nbIdentity := &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}} + writerMock.On("AddNbIdentity", entities.Node_ENB, nbIdentity).Return(nil) + if err := ranListManager.AddNbIdentity(entities.Node_ENB, nbIdentity); err != nil { + t.Errorf("#setupDeleteEnbRequestHandlerTest - Failed to add nbIdentity prior to DeleteEnb test") + } + } + handler := NewDeleteEnbRequestHandler(log, rnibDataService, ranListManager) return handler, readerMock, writerMock } func TestHandleDeleteEnbSuccess(t *testing.T) { - handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t) + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) - ranName := "test1" + ranName := "ran1" var rnibError error nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB} readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError) writerMock.On("RemoveEnb", nodebInfo).Return(nil) + writerMock.On("RemoveNbIdentity", entities.Node_ENB, &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}).Return(nil) result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName}) assert.Nil(t, err) assert.NotNil(t, result) - assert.IsType(t, &models.DeleteEnbResponse{}, result) + assert.IsType(t, &models.NodebResponse{}, result) + readerMock.AssertExpectations(t) + writerMock.AssertExpectations(t) +} + +func TestHandleDeleteEnbSuccessNoEnb(t *testing.T) { + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, true) + + ranName := "ran1" + var rnibError error + nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB} + readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError) + writerMock.On("RemoveEnb", nodebInfo).Return(nil) + result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName}) + assert.Nil(t, err) + assert.NotNil(t, result) + assert.IsType(t, &models.NodebResponse{}, result) readerMock.AssertExpectations(t) writerMock.AssertExpectations(t) } func TestHandleDeleteEnbInternalGetNodebError(t *testing.T) { - handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t) + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) - ranName := "test1" + ranName := "ran1" rnibError := errors.New("for test") var nodebInfo *entities.NodebInfo readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError) @@ -73,9 +99,9 @@ func TestHandleDeleteEnbInternalGetNodebError(t *testing.T) { } func TestHandleDeleteEnbInternalRemoveEnbError(t *testing.T) { - handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t) + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) - ranName := "test1" + ranName := "ran1" rnibError := errors.New("for test") nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB} readerMock.On("GetNodeb", ranName).Return(nodebInfo, nil) @@ -87,10 +113,26 @@ func TestHandleDeleteEnbInternalRemoveEnbError(t *testing.T) { writerMock.AssertExpectations(t) } +func TestHandleDeleteEnbInternalRemoveNbIdentityError(t *testing.T) { + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) + + ranName := "ran1" + rnibError := errors.New("for test") + nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB} + readerMock.On("GetNodeb", ranName).Return(nodebInfo, nil) + writerMock.On("RemoveEnb", nodebInfo).Return(nil) + writerMock.On("RemoveNbIdentity", entities.Node_ENB, &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}).Return(rnibError) + result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName}) + assert.NotNil(t, err) + assert.Nil(t, result) + readerMock.AssertExpectations(t) + writerMock.AssertExpectations(t) +} + func TestHandleDeleteEnbResourceNotFoundError(t *testing.T) { - handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t) + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) - ranName := "test1" + ranName := "ran1" rnibError := common.NewResourceNotFoundError("for test") var nodebInfo *entities.NodebInfo readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError) @@ -102,9 +144,9 @@ func TestHandleDeleteEnbResourceNotFoundError(t *testing.T) { } func TestHandleDeleteEnbNodeTypeNotEnbError(t *testing.T) { - handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t) + handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t, false) - ranName := "test1" + ranName := "ran1" nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_GNB} readerMock.On("GetNodeb", ranName).Return(nodebInfo, nil) result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})