Added E2M UT Improvemnet TestCases
[ric-plt/e2mgr.git] / E2Manager / handlers / httpmsghandlers / add_enb_request_handler_test.go
1 package httpmsghandlers
2
3 import (
4     "e2mgr/configuration"
5     "e2mgr/managers"
6     "e2mgr/mocks"
7     "e2mgr/models"
8     "e2mgr/services"
9     "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
10     "github.com/stretchr/testify/assert"
11     "testing"
12 )
13
14 func setupAddEnbRequestHandlerTest(t *testing.T) (*AddEnbRequestHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock) {
15     log := initLog(t)
16     config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3}
17     readerMock := &mocks.RnibReaderMock{}
18     writerMock := &mocks.RnibWriterMock{}
19     rnibDataService := services.NewRnibDataService(log, config, readerMock, writerMock)
20     ranListManager := managers.NewRanListManager(log, rnibDataService)
21     nodebValidator := managers.NewNodebValidator()
22     handler := NewAddEnbRequestHandler(log,rnibDataService,nodebValidator, ranListManager)
23     return handler, readerMock, writerMock
24 }
25
26 func CreateNodebInfoTest(t *testing.T,RanName string,  connectionStatus entities.ConnectionStatus) *entities.NodebInfo{
27
28         setupRequest := &models.E2SetupRequestMessage{}
29         nodebInfo := &entities.NodebInfo{
30                 RanName:                      RanName,
31                 SetupFromNetwork:             true,
32                 NodeType:                     entities.Node_GNB,
33                 ConnectionStatus:                         connectionStatus,
34                 Configuration: &entities.NodebInfo_Gnb{
35                         Gnb: &entities.Gnb{
36                                 GnbType:      entities.GnbType_GNB,
37                                 RanFunctions: setupRequest.ExtractRanFunctionsList(),
38                         },
39                 },
40                 GlobalNbId: &entities.GlobalNbId{
41                         PlmnId: setupRequest.GetPlmnId(),
42                         NbId:   setupRequest.GetNbId(),
43                 },
44         }
45         return nodebInfo
46 }
47
48 func TestGlobalNbIdValid(t *testing.T){
49         globalNbId := &entities.GlobalNbId{}
50         res :=  isGlobalNbIdValid(globalNbId)
51         assert.NotNil(t,res)
52
53 }
54
55 func TestHandleAddEnbSuccess(t *testing.T) {
56         handler, readerMock, writerMock := setupAddEnbRequestHandlerTest(t)
57         ranName := "ran1"
58         var rnibError error
59         nodebInfo := &entities.NodebInfo{RanName: ranName, NodeType: entities.Node_ENB}
60         readerMock.On("GetNodeb", ranName).Return(nodebInfo, rnibError)
61         //writerMock.On("AddNbIdentity", entities.Node_ENB, nbIdentity).Return(nil)
62         writerMock.On("AddEnb", nodebInfo).Return(nil)
63         writerMock.On("AddNbIdentity", entities.Node_ENB, &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}).Return(nil)
64         addEnbRequest := &models.AddEnbRequest{RanName: ranName}
65         result, err := handler.Handle(addEnbRequest)
66         assert.NotNil(t, err)
67         assert.Nil(t, result)
68 }
69
70 func TestValidateRequestBody(t *testing.T){
71      handler, _,_  := setupAddEnbRequestHandlerTest(t)
72      
73      ranName := "ran1"
74      addEnbRequest := &models.AddEnbRequest{RanName: ranName}
75      err := handler.validateRequestBody(addEnbRequest)
76      assert.NotNil(t,err)
77      }
78
79
80