[RIC-431] Add rnibWriter UTs
[ric-plt/e2mgr.git] / E2Manager / rNibWriter / rNibWriter_test.go
index 3dadce8..f99f69e 100644 (file)
@@ -37,6 +37,8 @@ var namespace = "namespace"
 
 const (
        RanName = "test"
+       PlmnId = "02f829"
+       NbId = "4a952a0a"
 )
 
 func initSdlInstanceMock(namespace string) (w RNibWriter, sdlInstanceMock *mocks.MockSdlInstance) {
@@ -144,6 +146,34 @@ func TestUpdateGnbCellsInvalidNodebInfoFailure(t *testing.T) {
        assert.IsType(t, &common.ValidationError{}, rNibErr)
 }
 
+func TestAddNbIdentitySuccess(t *testing.T) {
+       w, sdlInstanceMock := initSdlInstanceMock(namespace)
+
+       nbIdentity :=  &entities.NbIdentity{InventoryName: RanName, GlobalNbId: &entities.GlobalNbId{PlmnId: PlmnId, NbId: NbId}}
+       nbIdData, err := proto.Marshal(nbIdentity)
+       if err != nil {
+               t.Fatalf("#rNibWriter_test.TestAddNbIdentitySuccess - Failed to marshal NodeB Identity entity. Error: %v", err)
+       }
+
+       sdlInstanceMock.On("AddMember", "ENB", []interface{}{nbIdData}).Return(nil)
+       rNibErr := w.AddNbIdentity(entities.Node_ENB,nbIdentity)
+       assert.Nil(t, rNibErr)
+}
+
+func TestAddNbIdentitySdlFailure(t *testing.T) {
+       w, sdlInstanceMock := initSdlInstanceMock(namespace)
+
+       nbIdentity :=  &entities.NbIdentity{InventoryName: RanName, GlobalNbId: &entities.GlobalNbId{PlmnId: PlmnId, NbId: NbId}}
+       nbIdData, err := proto.Marshal(nbIdentity)
+       if err != nil {
+               t.Fatalf("#rNibWriter_test.TestAddNbIdentitySdlFailure - Failed to marshal NodeB Identity entity. Error: %v", err)
+       }
+
+       sdlInstanceMock.On("AddMember", "ENB", []interface{}{nbIdData}).Return(errors.New("expected error"))
+       rNibErr := w.AddNbIdentity(entities.Node_ENB,nbIdentity)
+       assert.IsType(t, &common.InternalError{}, rNibErr)
+}
+
 func TestUpdateGnbCellsInvalidCellFailure(t *testing.T) {
        inventoryName := "name"
        plmnId := "02f829"
@@ -1045,6 +1075,36 @@ func TestRemoveEnbRemoveAndPublishError(t *testing.T) {
        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){