ChoiceEutraMode: &entities.ChoiceEUTRAMode{
Fdd: &entities.FddInfo{},
},
- Pci: uint32(i + 1),
+ Pci: uint32(i + 1),
BroadcastPlmns: []string{"whatever"},
})
}
for i, v := range cellIds {
servedCells = append(servedCells, &entities.ServedCellInfo{
CellId: v,
- Pci: uint32(i + 1),
+ Pci: uint32(i + 1),
})
}
assert.IsType(t, &common.ValidationError{}, rNibErr)
}
+func getUpdateEnbCellsSetExpected(t *testing.T, nodebInfo *entities.NodebInfo, servedCells []*entities.ServedCellInfo) []interface{} {
+
+ nodebInfoData, err := proto.Marshal(nodebInfo)
+ if err != nil {
+ t.Fatalf("#rNibWriter_test.getUpdateEnbCellsSetExpected - Failed to marshal NodeB entity. Error: %s", err)
+ }
+
+ nodebNameKey, _ := common.ValidateAndBuildNodeBNameKey(nodebInfo.RanName)
+ nodebIdKey, _ := common.ValidateAndBuildNodeBIdKey(nodebInfo.NodeType.String(), nodebInfo.GlobalNbId.PlmnId, nodebInfo.GlobalNbId.NbId)
+ setExpected := []interface{}{nodebNameKey, nodebInfoData, nodebIdKey, nodebInfoData}
+
+ for _, cell := range servedCells {
+
+ cellEntity := entities.Cell{Type: entities.Cell_LTE_CELL, Cell: &entities.Cell_ServedCellInfo{ServedCellInfo: cell}}
+ cellData, err := proto.Marshal(&cellEntity)
+
+ if err != nil {
+ t.Fatalf("#rNibWriter_test.getUpdateEnbCellsSetExpected - Failed to marshal cell entity. Error: %s", err)
+ }
+
+ nrCellIdKey, _ := common.ValidateAndBuildCellIdKey(cell.GetCellId())
+ cellNamePciKey, _ := common.ValidateAndBuildCellNamePciKey(nodebInfo.RanName, cell.GetPci())
+ setExpected = append(setExpected, nrCellIdKey, cellData, cellNamePciKey, cellData)
+ }
+
+ return setExpected
+}
+
func getUpdateGnbCellsSetExpected(t *testing.T, nodebInfo *entities.NodebInfo, servedNrCells []*entities.ServedNRCell) []interface{} {
nodebInfoData, err := proto.Marshal(nodebInfo)
}
func TestSaveEnb(t *testing.T) {
- name := "name"
- ranName := "RAN:" + name
+ ranName := "RAN:" + RanName
w, sdlInstanceMock := initSdlInstanceMock(namespace)
- nb := entities.NodebInfo{}
- nb.RanName = name
- nb.NodeType = entities.Node_ENB
- nb.ConnectionStatus = 1
- nb.Ip = "localhost"
- nb.Port = 5656
+ nb := entities.NodebInfo{
+ RanName: RanName,
+ NodeType: entities.Node_ENB,
+ ConnectionStatus: entities.ConnectionStatus_CONNECTED,
+ Ip: "localhost",
+ Port: 5656,
+ GlobalNbId: &entities.GlobalNbId{
+ NbId: "4a952a0a",
+ PlmnId: "02f829",
+ },
+ }
+
enb := entities.Enb{}
cell := &entities.ServedCellInfo{CellId: "aaff", Pci: 3}
cellEntity := entities.Cell{Type: entities.Cell_LTE_CELL, Cell: &entities.Cell_ServedCellInfo{ServedCellInfo: cell}}
setExpected = append(setExpected, ranName, data)
setExpected = append(setExpected, "ENB:02f829:4a952a0a", data)
setExpected = append(setExpected, fmt.Sprintf("CELL:%s", cell.GetCellId()), cellData)
- setExpected = append(setExpected, fmt.Sprintf("PCI:%s:%02x", name, cell.GetPci()), cellData)
-
- sdlInstanceMock.On("SetAndPublish", []string{"RAN_MANIPULATION", name + "_" + RanAddedEvent}, []interface{}{setExpected}).Return(e)
+ setExpected = append(setExpected, fmt.Sprintf("PCI:%s:%02x", RanName, cell.GetPci()), cellData)
- 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)
- 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)
+ sdlInstanceMock.On("SetAndPublish", []string{"RAN_MANIPULATION", RanName + "_" + RanAddedEvent}, []interface{}{setExpected}).Return(e)
- rNibErr := w.SaveNodeb(nbIdentity, &nb)
+ rNibErr := w.SaveNodeb(&nb)
assert.Nil(t, rNibErr)
}
func TestSaveEnbCellIdValidationFailure(t *testing.T) {
- name := "name"
w, _ := initSdlInstanceMock(namespace)
nb := entities.NodebInfo{}
+ nb.RanName = "name"
nb.NodeType = entities.Node_ENB
nb.ConnectionStatus = 1
nb.Ip = "localhost"
cell := &entities.ServedCellInfo{Pci: 3}
enb.ServedCells = []*entities.ServedCellInfo{cell}
nb.Configuration = &entities.NodebInfo_Enb{Enb: &enb}
-
- nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
- rNibErr := w.SaveNodeb(nbIdentity, &nb)
+ rNibErr := w.SaveNodeb(&nb)
assert.NotNil(t, rNibErr)
assert.IsType(t, &common.ValidationError{}, rNibErr)
assert.Equal(t, "#utils.ValidateAndBuildCellIdKey - an empty cell id received", rNibErr.Error())
func TestSaveEnbInventoryNameValidationFailure(t *testing.T) {
w, _ := initSdlInstanceMock(namespace)
- nb := entities.NodebInfo{}
- nb.NodeType = entities.Node_ENB
- nb.ConnectionStatus = 1
- nb.Ip = "localhost"
- nb.Port = 5656
+ nb := entities.NodebInfo{
+ NodeType: entities.Node_ENB,
+ ConnectionStatus: entities.ConnectionStatus_CONNECTED,
+ Ip: "localhost",
+ Port: 5656,
+ GlobalNbId: &entities.GlobalNbId{
+ NbId: "4a952a0a",
+ PlmnId: "02f829",
+ },
+ }
enb := entities.Enb{}
cell := &entities.ServedCellInfo{CellId: "aaa", Pci: 3}
enb.ServedCells = []*entities.ServedCellInfo{cell}
nb.Configuration = &entities.NodebInfo_Enb{Enb: &enb}
-
- nbIdentity := &entities.NbIdentity{InventoryName: "", GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
- rNibErr := w.SaveNodeb(nbIdentity, &nb)
+ rNibErr := w.SaveNodeb(&nb)
assert.NotNil(t, rNibErr)
assert.IsType(t, &common.ValidationError{}, rNibErr)
assert.Equal(t, "#utils.ValidateAndBuildNodeBNameKey - an empty inventory name received", rNibErr.Error())
}
func TestSaveGnbCellIdValidationFailure(t *testing.T) {
- name := "name"
w, _ := initSdlInstanceMock(namespace)
nb := entities.NodebInfo{}
+ nb.RanName = "name"
nb.NodeType = entities.Node_GNB
nb.ConnectionStatus = 1
nb.Ip = "localhost"
gnb.ServedNrCells = []*entities.ServedNRCell{cell}
nb.Configuration = &entities.NodebInfo_Gnb{Gnb: &gnb}
- nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
- rNibErr := w.SaveNodeb(nbIdentity, &nb)
+ rNibErr := w.SaveNodeb(&nb)
assert.NotNil(t, rNibErr)
assert.IsType(t, &common.ValidationError{}, rNibErr)
assert.Equal(t, "#utils.ValidateAndBuildNrCellIdKey - an empty cell id received", rNibErr.Error())
}
func TestSaveGnb(t *testing.T) {
- name := "name"
- ranName := "RAN:" + name
+ ranName := "RAN:" + RanName
w, sdlInstanceMock := initSdlInstanceMock(namespace)
- nb := entities.NodebInfo{}
- nb.NodeType = entities.Node_GNB
- nb.ConnectionStatus = 1
- nb.Ip = "localhost"
- nb.Port = 5656
+ nb := entities.NodebInfo{
+ RanName: RanName,
+ NodeType: entities.Node_GNB,
+ ConnectionStatus: 1,
+ GlobalNbId: &entities.GlobalNbId{
+ NbId: "4a952a0a",
+ PlmnId: "02f829",
+ },
+ Ip: "localhost",
+ Port: 5656,
+ }
+
gnb := entities.Gnb{}
cellInfo := &entities.ServedNRCellInformation{NrPci: 2, CellId: "ccdd"}
cell := &entities.ServedNRCell{ServedNrCellInformation: cellInfo}
setExpected = append(setExpected, ranName, data)
setExpected = append(setExpected, "GNB:02f829:4a952a0a", data)
setExpected = append(setExpected, fmt.Sprintf("NRCELL:%s", cell.GetServedNrCellInformation().GetCellId()), cellData)
- setExpected = append(setExpected, fmt.Sprintf("PCI:%s:%02x", name, cell.GetServedNrCellInformation().GetNrPci()), cellData)
+ setExpected = append(setExpected, fmt.Sprintf("PCI:%s:%02x", RanName, cell.GetServedNrCellInformation().GetNrPci()), cellData)
sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(e)
- nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
- nbIdData, err := proto.Marshal(nbIdentity)
- if err != nil {
- t.Errorf("#rNibWriter_test.TestSaveGnb - Failed to marshal NodeB Identity entity. Error: %v", err)
- }
- 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)
+ rNibErr := w.SaveNodeb(&nb)
assert.Nil(t, rNibErr)
}
func TestSaveNilEntityFailure(t *testing.T) {
w, _ := initSdlInstanceMock(namespace)
expectedErr := common.NewInternalError(errors.New("proto: Marshal called with nil"))
- nbIdentity := &entities.NbIdentity{}
- actualErr := w.SaveNodeb(nbIdentity, nil)
+ actualErr := w.SaveNodeb(nil)
assert.Equal(t, expectedErr, actualErr)
}
func TestSaveUnknownTypeEntityFailure(t *testing.T) {
w, _ := initSdlInstanceMock(namespace)
- nbIdentity := &entities.NbIdentity{InventoryName: "name", GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
nb := &entities.NodebInfo{}
nb.Port = 5656
nb.Ip = "localhost"
- actualErr := w.SaveNodeb(nbIdentity, nb)
+ actualErr := w.SaveNodeb(nb)
assert.IsType(t, &common.ValidationError{}, actualErr)
}
if err != nil {
t.Errorf("#rNibWriter_test.TestSaveEntityFailure - Failed to marshal NodeB entity. Error: %v", err)
}
- nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}}
setExpected := []interface{}{"RAN:" + name, data}
setExpected = append(setExpected, "GNB:"+plmnId+":"+nbId, data)
expectedErr := errors.New("expected error")
sdlInstanceMock.On("Set", []interface{}{setExpected}).Return(expectedErr)
- rNibErr := w.SaveNodeb(nbIdentity, &gnb)
+ rNibErr := w.SaveNodeb(&gnb)
assert.NotEmpty(t, rNibErr)
}
assert.NotNil(t, rNibErr)
}
+
+func TestRemoveServedCellsFailure(t *testing.T) {
+ w, sdlInstanceMock := initSdlInstanceMock(namespace)
+ servedCellsToRemove := generateServedCells("whatever1", "whatever2")
+ expectedErr := errors.New("expected error")
+ sdlInstanceMock.On("Remove", buildServedCellInfoKeysToRemove(RanName, servedCellsToRemove)).Return(expectedErr)
+
+ rNibErr := w.RemoveServedCells(RanName, servedCellsToRemove)
+
+ assert.NotNil(t, rNibErr)
+}
+
func TestRemoveServedCellsSuccess(t *testing.T) {
w, sdlInstanceMock := initSdlInstanceMock(namespace)
servedCellsToRemove := generateServedCells("whatever1", "whatever2")
assert.IsType(t, &common.ValidationError{}, rNibErr)
}
-/*func TestUpdateEnbSdlFailure(t *testing.T) {
- inventoryName := "ranName"
+func TestUpdateEnbSdlFailure(t *testing.T) {
+ inventoryName := "name"
plmnId := "02f829"
nbId := "4a952a0a"
w, sdlInstanceMock := initSdlInstanceMock(namespace)
servedCells := generateServedCells("test1", "test2")
- nodebInfo := generateNodebInfo(inventoryName, entities.Node_GNB, plmnId, nbId)
+ nodebInfo := generateNodebInfo(inventoryName, entities.Node_ENB, plmnId, nbId)
nodebInfo.GetEnb().ServedCells = servedCells
- setExpected := getUpdateEnbSetExpected(t, nodebInfo, servedCells)
+ setExpected := getUpdateEnbCellsSetExpected(t, nodebInfo, servedCells)
sdlInstanceMock.On("SetAndPublish", []string{"RAN_MANIPULATION", inventoryName + "_" + RanUpdatedEvent}, []interface{}{setExpected}).Return(errors.New("expected error"))
rNibErr := w.UpdateEnb(nodebInfo, servedCells)
assert.IsType(t, &common.InternalError{}, rNibErr)
-}*/
+}
-/*func TestUpdateEnbSuccess(t *testing.T) {
- inventoryName := "ranName"
+func TestUpdateEnbSuccess(t *testing.T) {
+ inventoryName := "name"
plmnId := "02f829"
nbId := "4a952a0a"
w, sdlInstanceMock := initSdlInstanceMock(namespace)
servedCells := generateServedCells("test1", "test2")
- nodebInfo := generateNodebInfo(inventoryName, entities.Node_GNB, plmnId, nbId)
+ nodebInfo := generateNodebInfo(inventoryName, entities.Node_ENB, plmnId, nbId)
nodebInfo.GetEnb().ServedCells = servedCells
- setExpected := getUpdateEnbSetExpected(t, nodebInfo, servedCells)
+ setExpected := getUpdateEnbCellsSetExpected(t, nodebInfo, servedCells)
var e error
sdlInstanceMock.On("SetAndPublish", []string{"RAN_MANIPULATION", inventoryName + "_" + RanUpdatedEvent}, []interface{}{setExpected}).Return(e)
rNibErr := w.UpdateEnb(nodebInfo, servedCells)
assert.Nil(t, rNibErr)
-}*/
+}
func getUpdateEnbSetExpected(t *testing.T, nodebInfo *entities.NodebInfo, servedCells []*entities.ServedCellInfo) []interface{} {
var e error
- nbIdentity := &entities.NbIdentity{InventoryName: nodebInfo.RanName, GlobalNbId: nodebInfo.GetGlobalNbId()}
- nbIdData, err := proto.Marshal(nbIdentity)
- if err != nil {
- t.Errorf("#rNibWriter_test.TestRemoveEnbSuccess - Failed to marshal NbIdentity entity. Error: %v", err)
- }
- sdlInstanceMock.On("RemoveMember", entities.Node_ENB.String(), []interface{}{nbIdData}).Return(e)
-
expectedKeys := []string{}
cell1Key := fmt.Sprintf("CELL:%s", nodebInfo.GetEnb().ServedCells[0].CellId)
cell1PciKey := fmt.Sprintf("PCI:%s:%02x", inventoryName, nodebInfo.GetEnb().ServedCells[0].Pci)
sdlInstanceMock.AssertExpectations(t)
}
-func TestRemoveEnbRemoveNbIdentityError(t *testing.T) {
- inventoryName := "name"
- plmnId := "02f829"
- nbId := "4a952a0a"
- w, sdlInstanceMock := initSdlInstanceMock(namespace)
- nodebInfo := generateNodebInfo(inventoryName, entities.Node_ENB, plmnId, nbId)
- nodebInfo.GetEnb().ServedCells = generateServedCellInfos("cell1", "cell2")
-
- nbIdentity := &entities.NbIdentity{InventoryName: nodebInfo.RanName, GlobalNbId: nodebInfo.GetGlobalNbId()}
- nbIdData, err := proto.Marshal(nbIdentity)
- if err != nil {
- t.Errorf("#rNibWriter_test.TestRemoveEnbSuccess - Failed to marshal NbIdentity entity. Error: %v", err)
- }
- sdlInstanceMock.On("RemoveMember", entities.Node_ENB.String(), []interface{}{nbIdData}).Return(errors.New("for test"))
-
- rNibErr := w.RemoveEnb(nodebInfo)
- assert.NotNil(t, rNibErr)
- sdlInstanceMock.AssertExpectations(t)
-}
-
func TestRemoveEnbRemoveAndPublishError(t *testing.T) {
inventoryName := "name"
plmnId := "02f829"
nodebInfo := generateNodebInfo(inventoryName, entities.Node_ENB, plmnId, nbId)
nodebInfo.GetEnb().ServedCells = generateServedCellInfos("cell1", "cell2")
- var e error
-
- nbIdentity := &entities.NbIdentity{InventoryName: nodebInfo.RanName, GlobalNbId: nodebInfo.GetGlobalNbId()}
- nbIdData, err := proto.Marshal(nbIdentity)
- if err != nil {
- t.Errorf("#rNibWriter_test.TestRemoveEnbSuccess - Failed to marshal NbIdentity entity. Error: %v", err)
- }
- sdlInstanceMock.On("RemoveMember", entities.Node_ENB.String(), []interface{}{nbIdData}).Return(e)
-
expectedKeys := []string{}
cell1Key := fmt.Sprintf("CELL:%s", nodebInfo.GetEnb().ServedCells[0].CellId)
cell1PciKey := fmt.Sprintf("PCI:%s:%02x", inventoryName, nodebInfo.GetEnb().ServedCells[0].Pci)
sdlInstanceMock.AssertExpectations(t)
}
+func TestRemoveNbIdentitySuccess(t *testing.T) {
+ w, sdlInstanceMock := initSdlInstanceMock(namespace)
+ nbIdentity := &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}
+ nbIdData, err := proto.Marshal(nbIdentity)
+ if err != nil {
+ t.Errorf("#TestRemoveNbIdentitySuccess - failed to Marshal NbIdentity")
+ }
+
+ sdlInstanceMock.On("RemoveMember", entities.Node_ENB.String(), []interface{}{nbIdData}).Return(nil)
+
+ rNibErr := w.RemoveNbIdentity(entities.Node_ENB, nbIdentity)
+ assert.Nil(t, rNibErr)
+ sdlInstanceMock.AssertExpectations(t)
+}
+
+func TestRemoveNbIdentityError(t *testing.T) {
+ w, sdlInstanceMock := initSdlInstanceMock(namespace)
+ nbIdentity := &entities.NbIdentity{InventoryName: "ran1", ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, GlobalNbId: &entities.GlobalNbId{PlmnId: "plmnId1", NbId: "nbId1"}}
+ nbIdData, err := proto.Marshal(nbIdentity)
+ if err != nil {
+ t.Errorf("#TestRemoveNbIdentitySuccess - failed to Marshal NbIdentity")
+ }
+
+ sdlInstanceMock.On("RemoveMember", entities.Node_ENB.String(), []interface{}{nbIdData}).Return(fmt.Errorf("for test"))
+
+ rNibErr := w.RemoveNbIdentity(entities.Node_ENB, nbIdentity)
+ assert.NotNil(t, rNibErr)
+ sdlInstanceMock.AssertExpectations(t)
+}
+
//Integration tests
//
//func TestSaveEnbGnbInteg(t *testing.T){