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
29 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
30 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
31 "github.com/stretchr/testify/assert"
35 func setupDeleteEnbRequestHandlerTest(t *testing.T) (*DeleteEnbRequestHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock) {
37 config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
38 readerMock := &mocks.RnibReaderMock{}
39 writerMock := &mocks.RnibWriterMock{}
40 rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock)
41 handler := NewDeleteEnbRequestHandler(log, rnibDataService)
42 return handler, readerMock, writerMock
45 func TestHandleDeleteEnbSuccess(t *testing.T) {
46 handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t)
50 nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB}
51 readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError)
52 writerMock.On("RemoveEnb", nodebInfo).Return(nil)
53 result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})
55 assert.NotNil(t, result)
56 assert.IsType(t, &models.DeleteEnbResponse{}, result)
57 readerMock.AssertExpectations(t)
58 writerMock.AssertExpectations(t)
61 func TestHandleDeleteEnbInternalGetNodebError(t *testing.T) {
62 handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t)
65 rnibError := errors.New("for test")
66 var nodebInfo *entities.NodebInfo
67 readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError)
68 result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})
71 readerMock.AssertExpectations(t)
72 writerMock.AssertExpectations(t)
75 func TestHandleDeleteEnbInternalRemoveEnbError(t *testing.T) {
76 handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t)
79 rnibError := errors.New("for test")
80 nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB}
81 readerMock.On("GetNodeb", ranName).Return(nodebInfo, nil)
82 writerMock.On("RemoveEnb", nodebInfo).Return(rnibError)
83 result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})
86 readerMock.AssertExpectations(t)
87 writerMock.AssertExpectations(t)
90 func TestHandleDeleteEnbResourceNotFoundError(t *testing.T) {
91 handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t)
94 rnibError := common.NewResourceNotFoundError("for test")
95 var nodebInfo *entities.NodebInfo
96 readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError)
97 result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})
100 readerMock.AssertExpectations(t)
101 writerMock.AssertExpectations(t)
104 func TestHandleDeleteEnbNodeTypeNotEnbError(t *testing.T) {
105 handler, readerMock, writerMock := setupDeleteEnbRequestHandlerTest(t)
108 nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_GNB}
109 readerMock.On("GetNodeb", ranName).Return(nodebInfo, nil)
110 result, err := handler.Handle(&models.DeleteEnbRequest{RanName: ranName})
111 assert.NotNil(t, err)
112 assert.Nil(t, result)
113 readerMock.AssertExpectations(t)
114 writerMock.AssertExpectations(t)