[RICPLT-1898] - Replace http router to gorilla-mux + UT + Automation code
[ric-plt/e2mgr.git] / E2Manager / rNibWriter / rNibWriter_test.go
index c2b6d23..63a5d18 100644 (file)
@@ -71,6 +71,89 @@ func initSdlInstanceMock(namespace string, poolSize int) *mocks.MockSdlInstance
        return sdlInstanceMock
 }
 
+func TestUpdateNodebInfoSuccess(t *testing.T) {
+       inventoryName := "name"
+       plmnId := "02f829"
+       nbId := "4a952a0a"
+       writerPool = nil
+       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
+       w := GetRNibWriter()
+       nodebInfo := &entities.NodebInfo{}
+       nodebInfo.RanName = inventoryName
+       nodebInfo.GlobalNbId = &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
+       nodebInfo.NodeType = entities.Node_ENB
+       nodebInfo.ConnectionStatus = 1
+       enb := entities.Enb{}
+       nodebInfo.Configuration = &entities.NodebInfo_Enb{Enb: &enb}
+       data, err := proto.Marshal(nodebInfo)
+       if err != nil {
+               t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal NodeB entity. Error: %v", err)
+       }
+       var e error
+       var setExpected []interface{}
+
+       nodebNameKey := fmt.Sprintf("RAN:%s", inventoryName)
+       nodebIdKey := fmt.Sprintf("ENB:%s:%s", plmnId, nbId)
+       setExpected = append(setExpected, nodebNameKey, data)
+       setExpected = append(setExpected, nodebIdKey, data)
+
+       sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(e)
+
+       rNibErr := w.UpdateNodebInfo(nodebInfo)
+       assert.Nil(t, rNibErr)
+}
+
+func TestUpdateNodebInfoMissingInventoryNameFailure(t *testing.T) {
+       inventoryName := "name"
+       plmnId := "02f829"
+       nbId := "4a952a0a"
+       writerPool = nil
+       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
+       w := GetRNibWriter()
+       nodebInfo := &entities.NodebInfo{}
+       data, err := proto.Marshal(nodebInfo)
+       if err != nil {
+               t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal NodeB entity. Error: %v", err)
+       }
+       var e error
+       var setExpected []interface{}
+
+       nodebNameKey := fmt.Sprintf("RAN:%s", inventoryName)
+       nodebIdKey := fmt.Sprintf("ENB:%s:%s", plmnId, nbId)
+       setExpected = append(setExpected, nodebNameKey, data)
+       setExpected = append(setExpected, nodebIdKey, data)
+
+       sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(e)
+
+       rNibErr := w.UpdateNodebInfo(nodebInfo)
+
+       assert.NotNil(t, rNibErr)
+       assert.Equal(t, common.VALIDATION_ERROR, rNibErr.GetCode())
+}
+
+func TestUpdateNodebInfoMissingGlobalNbId(t *testing.T) {
+       inventoryName := "name"
+       writerPool = nil
+       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
+       w := GetRNibWriter()
+       nodebInfo := &entities.NodebInfo{}
+       nodebInfo.RanName = inventoryName
+       data, err := proto.Marshal(nodebInfo)
+       if err != nil {
+               t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal NodeB entity. Error: %v", err)
+       }
+       var e error
+       var setExpected []interface{}
+
+       nodebNameKey := fmt.Sprintf("RAN:%s", inventoryName)
+       setExpected = append(setExpected, nodebNameKey, data)
+       sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(e)
+
+       rNibErr := w.UpdateNodebInfo(nodebInfo)
+
+       assert.Nil(t, rNibErr)
+}
+
 func TestSaveEnb(t *testing.T) {
        name := "name"
        ranName := "RAN:" + name
@@ -104,12 +187,20 @@ func TestSaveEnb(t *testing.T) {
        setExpected = append(setExpected, fmt.Sprintf("PCI:%s:%02x", name, cell.GetPci()), cellData)
 
        sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(e)
+
+       nbIdData, err := proto.Marshal(&entities.NbIdentity{InventoryName: name})
+       if err != nil {
+               t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal nbIdentity entity. Error: %v", err)
+       }
+       sdlInstanceMock.On("RemoveMember", entities.Node_UNKNOWN.String(), []interface{}{nbIdData}).Return(e)
+
        nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
-       nbIdData, err := proto.Marshal(nbIdentity)
+       nbIdData, err = proto.Marshal(nbIdentity)
        if err != nil {
                t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal NodeB Identity entity. Error: %v", err)
        }
        sdlInstanceMock.On("AddMember", "ENB", []interface{}{nbIdData}).Return(e)
+
        rNibErr := w.SaveNodeb(nbIdentity, &nb)
        assert.Nil(t, rNibErr)
 }
@@ -245,6 +336,12 @@ func TestSaveGnb(t *testing.T) {
        }
        sdlInstanceMock.On("AddMember", "GNB", []interface{}{nbIdData}).Return(e)
 
+       nbIdData, err = proto.Marshal(&entities.NbIdentity{InventoryName: name})
+       if err != nil {
+               t.Errorf("#rNibWriter_test.TestSaveEnb - Failed to marshal nbIdentity entity. Error: %v", err)
+       }
+       sdlInstanceMock.On("RemoveMember", entities.Node_UNKNOWN.String(), []interface{}{nbIdData}).Return(e)
+
        rNibErr := w.SaveNodeb(nbIdentity, &nb)
        assert.Nil(t, rNibErr)
 }
@@ -526,7 +623,7 @@ func TestInit(t *testing.T) {
 
 //Integration tests
 //
-//func TestSaveEnbInteg(t *testing.T){
+//func TestSaveEnbGnbInteg(t *testing.T){
 //     for i := 0; i<10; i++{
 //             Init("e2Manager", 1)
 //             w := GetRNibWriter()
@@ -551,7 +648,7 @@ func TestInit(t *testing.T) {
 //
 //             nb1 := entities.NodebInfo{}
 //             nb1.NodeType = entities.Node_GNB
-//             nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
+//             nb1.ConnectionStatus = entities.ConnectionStatus_CONNECTED
 //             nb1.Ip = "localhost"
 //             nb1.Port =  uint32(6565 + i)
 //             gnb := entities.Gnb{}
@@ -567,7 +664,23 @@ func TestInit(t *testing.T) {
 //             }
 //     }
 //}
-
+//
+//func TestSaveNbRanNamesInteg(t *testing.T){
+//     for i := 0; i<10; i++{
+//             Init("e2Manager", 1)
+//             w := GetRNibWriter()
+//             nb := entities.NodebInfo{}
+//             nb.ConnectionStatus = entities.ConnectionStatus_CONNECTING
+//             nb.Ip = "localhost"
+//             nb.Port = uint32(5656 + i)
+//             nbIdentity := &entities.NbIdentity{InventoryName: fmt.Sprintf("nameOnly%d" ,i)}
+//             err := w.SaveNodeb(nbIdentity, &nb)
+//             if err != nil{
+//                     t.Errorf("#rNibWriter_test.TestSaveEnbInteg - Failed to save NodeB entity. Error: %v", err)
+//             }
+//     }
+//}
+//
 //func TestSaveRanLoadInformationInteg(t *testing.T){
 //             Init("e2Manager", 1)
 //             w := GetRNibWriter()