RIC:1060: Change in PTL
[ric-plt/nodeb-rnib.git] / reader / rNibReader_test.go
index ad19ab4..3007b33 100644 (file)
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+//  This source code is part of the near-RT RIC (RAN Intelligent Controller)
+//  platform project (RICP).
+
 package reader
 
 import (
        "encoding/json"
-       "errors"
+       "fmt"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
        "github.com/golang/protobuf/proto"
+       "github.com/pkg/errors"
        "github.com/stretchr/testify/assert"
+       "strconv"
        "testing"
        "time"
 )
 
-var namespace = "namespace"
-
-func TestInit(t *testing.T) {
-       readerPool = nil
-       Init("", 1)
-       assert.NotNil(t, readerPool)
-       assert.NotNil(t, readerPool.New)
-       assert.NotNil(t, readerPool.Destroy)
-       available, created := readerPool.Stats()
-       assert.Equal(t, 0, available, "number of available objects in the readerPool should be 0")
-       assert.Equal(t, 0, created, "number of created objects in the readerPool should be 0")
-}
-
-func TestInitPool(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := new(MockSdlInstance)
-       initPool(1, func() interface{} {
-               sdlI := common.ISdlInstance(sdlInstanceMock)
-               return &rNibReaderInstance{sdl: &sdlI, namespace: namespace}
-       },
-               func(obj interface{}) {
-               },
-       )
-       assert.NotNil(t, readerPool)
-       assert.NotNil(t, readerPool.New)
-       assert.NotNil(t, readerPool.Destroy)
-       available, created := readerPool.Stats()
-       assert.Equal(t, 0, available, "number of available objects in the readerPool should be 0")
-       assert.Equal(t, 0, created, "number of created objects in the readerPool should be 0")
-}
-
-func initSdlInstanceMock(namespace string, poolSize int) *MockSdlInstance {
-       sdlInstanceMock := new(MockSdlInstance)
-       initPool(poolSize, func() interface{} {
-               sdlI := common.ISdlInstance(sdlInstanceMock)
-               return &rNibReaderInstance{sdl: &sdlI, namespace: namespace}
-       },
-               func(obj interface{}) {
-               },
-       )
-       return sdlInstanceMock
+func initSdlSyncStorageMock() (w RNibReader, sdlStorageMock *MockSdlSyncStorage) {
+       sdlStorageMock = new(MockSdlSyncStorage)
+       w = GetNewRNibReader(sdlStorageMock)
+       return
+}
+
+func TestGetRNibNamespace(t *testing.T) {
+       ns := common.GetRNibNamespace()
+       assert.Equal(t, "e2Manager", ns)
 }
 
 func TestGetNodeB(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -93,7 +64,7 @@ func TestGetNodeB(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeB - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetNodeb(name)
        assert.Nil(t, er)
        assert.Equal(t, getNb.Ip, nb.Ip)
@@ -105,28 +76,24 @@ func TestGetNodeB(t *testing.T) {
 
 func TestGetNodeBNotFoundFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetNodeBNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetNodeb(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getNodeb - responding node not found. Key: RAN:name", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.NodebInfo not found. Key: RAN:name", er.Error())
 }
 
 func TestGetNodeBUnmarshalFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        ret := make(map[string]interface{}, 1)
        redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
@@ -134,40 +101,36 @@ func TestGetNodeBUnmarshalFailure(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBUnmarshalFailure - failed to validate key parameter")
        }
        ret[redisKey] = "data"
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetNodeb(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
-       assert.EqualValues(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetNodeBSdlgoFailure(t *testing.T) {
        name := "name"
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var ret map[string]interface{}
        redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetNodeBSdlgoFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetNodeb(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetNodeBCellsListEnb(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -186,7 +149,7 @@ func TestGetNodeBCellsListEnb(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListEnb - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        cells, er := w.GetCellList(name)
        assert.Nil(t, er)
        assert.NotNil(t, cells)
@@ -197,9 +160,7 @@ func TestGetNodeBCellsListEnb(t *testing.T) {
 
 func TestGetNodeBCellsListGnb(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -219,7 +180,7 @@ func TestGetNodeBCellsListGnb(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListGnb - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        cells, er := w.GetCellList(name)
        assert.Nil(t, er)
        assert.NotNil(t, cells)
@@ -230,9 +191,7 @@ func TestGetNodeBCellsListGnb(t *testing.T) {
 
 func TestGetNodeBCellsListNodeUnmarshalFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        ret := make(map[string]interface{}, 1)
        redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
@@ -240,38 +199,34 @@ func TestGetNodeBCellsListNodeUnmarshalFailure(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListNodeUnmarshalFailure - failed to validate key parameter")
        }
        ret[redisKey] = "data"
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        cells, er := w.GetCellList(name)
        assert.NotNil(t, er)
        assert.Nil(t, cells)
-       assert.Equal(t, 2, er.GetCode())
-       assert.EqualValues(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetNodeBCellsListNodeNotFoundFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListNodeNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        cells, er := w.GetCellList(name)
        assert.NotNil(t, er)
        assert.Nil(t, cells)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getNodeb - responding node not found. Key: RAN:name", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.NodebInfo not found. Key: RAN:name", er.Error())
 }
 
 func TestGetNodeBCellsListNotFoundFailureEnb(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -288,17 +243,15 @@ func TestGetNodeBCellsListNotFoundFailureEnb(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListNotFoundFailureEnb - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        _, er := w.GetCellList(name)
        assert.NotNil(t, er)
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.GetCellList - served cells not found. Responding node RAN name: name.", er.Error())
+       assert.EqualValues(t, "#rNibReader.GetCellList - served cells not found. Responding node RAN name: name.", er.Error())
 }
 
 func TestGetNodeBCellsListNotFoundFailureGnb(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -315,76 +268,39 @@ func TestGetNodeBCellsListNotFoundFailureGnb(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetNodeBCellsListNotFoundFailureGnb - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        _, er := w.GetCellList(name)
        assert.NotNil(t, er)
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.GetCellList - served cells not found. Responding node RAN name: name.", er.Error())
-}
-
-func TestCloseOnClosedPoolFailure(t *testing.T) {
-       readerPool = nil
-       instanceMock := initSdlInstanceMock(namespace, 1)
-       w1 := GetRNibReader()
-       readerPool.Put(w1)
-       available, created := readerPool.Stats()
-       assert.Equal(t, 1, available, "number of available objects in the readerPool should be 1")
-       assert.Equal(t, 1, created, "number of created objects in the readerPool should be 1")
-       var e error
-       instanceMock.On("Close").Return(e)
-       Close()
-       assert.Panics(t, func() { Close() })
-}
-
-func TestCloseFailure(t *testing.T) {
-       readerPool = nil
-       instanceMock := initSdlInstanceMock(namespace, 2)
-       w1 := GetRNibReader()
-       readerPool.Put(w1)
-       available, created := readerPool.Stats()
-       assert.Equal(t, 1, available, "number of available objects in the readerPool should be 1")
-       assert.Equal(t, 1, created, "number of created objects in the readerPool should be 1")
-       e := errors.New("expected error")
-       instanceMock.On("Close").Return(e)
-       Close()
-       available, created = readerPool.Stats()
-       assert.Equal(t, 0, available, "number of available objects in the readerPool should be 0")
-       assert.Equal(t, 0, created, "number of created objects in the readerPool should be 0")
+       assert.EqualValues(t, "#rNibReader.GetCellList - served cells not found. Responding node RAN name: name.", er.Error())
 }
 
 func TestGetListGnbIdsUnmarshalFailure(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GetMembers", GnbType).Return([]string{"data"}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return([]string{"data"}, e)
        ids, er := w.GetListGnbIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
-       assert.Equal(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetListGnbIdsSdlgoFailure(t *testing.T) {
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var data []string
-       sdlInstanceMock.On("GetMembers", GnbType).Return(data, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(data, e)
        ids, er := w.GetListGnbIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetListNodesIdsGnbSdlgoFailure(t *testing.T) {
-
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
 
        name := "name"
        plmnId := "02f829"
@@ -395,26 +311,23 @@ func TestGetListNodesIdsGnbSdlgoFailure(t *testing.T) {
        if err != nil {
                t.Errorf("#rNibReader_test.TestGetListNodesIdsGnbSdlgoFailure - Failed to marshal nodeb identity entity. Error: %v", err)
        }
-       sdlInstanceMock.On("GetMembers", EnbType).Return([]string{string(data)}, nilError)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return([]string{string(data)}, nilError)
 
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
+       errMsgExpected := "expected Sdlgo error"
        expectedError := errors.New(errMsg)
        var nilData []string
-       sdlInstanceMock.On("GetMembers", GnbType).Return(nilData, expectedError)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(nilData, expectedError)
 
        ids, er := w.GetListNodebIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetListNodesIdsEnbSdlgoFailure(t *testing.T) {
-
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
 
        name := "name"
        plmnId := "02f829"
@@ -425,38 +338,45 @@ func TestGetListNodesIdsEnbSdlgoFailure(t *testing.T) {
        if err != nil {
                t.Errorf("#rNibReader_test.TestGetListNodesIdsEnbSdlgoFailure - Failed to marshal nodeb identity entity. Error: %v", err)
        }
-       sdlInstanceMock.On("GetMembers", GnbType).Return([]string{string(data)}, nilError)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return([]string{string(data)}, nilError)
 
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
+       errMsgExpected := "expected Sdlgo error"
        expectedError := errors.New(errMsg)
        var nilData []string
-       sdlInstanceMock.On("GetMembers", EnbType).Return(nilData, expectedError)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return(nilData, expectedError)
 
        ids, er := w.GetListNodebIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
-func TestGetListNodesIdsEnbSdlgoSuccess(t *testing.T) {
-
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+func TestGetListNodesIdsSuccess(t *testing.T) {
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+       var nilError error
 
        name := "name"
        plmnId := "02f829"
        nbId := "4a952a0a"
        nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}}
-       var nilError error
        data, err := proto.Marshal(nbIdentity)
        if err != nil {
-               t.Errorf("#rNibReader_test.TestGetListNodesIdsEnbSdlgoFailure - Failed to marshal nodeb identity entity. Error: %v", err)
+               t.Errorf("#rNibReader_test.TestGetListNodesIdsSuccess - Failed to marshal nodeb identity entity. Error: %v", err)
+       }
+
+       name1 := "name1"
+       plmnId1 := "02f845"
+       nbId1 := "4a952a75"
+       nbIdentity1 := &entities.NbIdentity{InventoryName: name1, GlobalNbId: &entities.GlobalNbId{PlmnId: plmnId1, NbId: nbId1}}
+       data1, err := proto.Marshal(nbIdentity1)
+       if err != nil {
+               t.Errorf("#rNibReader_test.TestGetListNodesIdsSuccess - Failed to marshal nodeb identity entity. Error: %v", err)
        }
-       sdlInstanceMock.On("GetMembers", GnbType).Return([]string{string(data)}, nilError)
-       sdlInstanceMock.On("GetMembers", EnbType).Return([]string{string(data)}, nilError)
+
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return([]string{string(data)}, nilError)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return([]string{string(data1)}, nilError)
 
        ids, er := w.GetListNodebIds()
        assert.Nil(t, er)
@@ -465,49 +385,43 @@ func TestGetListNodesIdsEnbSdlgoSuccess(t *testing.T) {
 }
 
 func TestGetListEnbIdsUnmarshalFailure(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GetMembers", EnbType).Return([]string{"data"}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return([]string{"data"}, e)
        ids, er := w.GetListEnbIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
-       assert.Equal(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetListEnbIdsOneId(t *testing.T) {
        name := "name"
        plmnId := "02f829"
        nbId := "4a952a0a"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}}
        var e error
        data, err := proto.Marshal(nbIdentity)
        if err != nil {
                t.Errorf("#rNibReader_test.TestGetListEnbIds - Failed to marshal nodeb identity entity. Error: %v", err)
        }
-       sdlInstanceMock.On("GetMembers", EnbType).Return([]string{string(data)}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return([]string{string(data)}, e)
        ids, er := w.GetListEnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, 1)
-       assert.Equal(t, (*ids)[0].GetInventoryName(), name)
-       assert.Equal(t, (*ids)[0].GetGlobalNbId().GetPlmnId(), nbIdentity.GetGlobalNbId().GetPlmnId())
-       assert.Equal(t, (*ids)[0].GetGlobalNbId().GetNbId(), nbIdentity.GetGlobalNbId().GetNbId())
+       assert.Len(t, ids, 1)
+       assert.Equal(t, (ids)[0].GetInventoryName(), name)
+       assert.Equal(t, (ids)[0].GetGlobalNbId().GetPlmnId(), nbIdentity.GetGlobalNbId().GetPlmnId())
+       assert.Equal(t, (ids)[0].GetGlobalNbId().GetNbId(), nbIdentity.GetGlobalNbId().GetNbId())
 }
 
 func TestGetListEnbIdsNoIds(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GetMembers", EnbType).Return([]string{}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return([]string{}, e)
        ids, er := w.GetListEnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, 0)
+       assert.Len(t, ids, 0)
 }
 
 func TestGetListEnbIds(t *testing.T) {
@@ -515,13 +429,17 @@ func TestGetListEnbIds(t *testing.T) {
        plmnId := 0x02f829
        nbId := 0x4a952a0a
        listSize := 3
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        idsData := make([]string, listSize)
        idsEntities := make([]*entities.NbIdentity, listSize)
        for i := 0; i < listSize; i++ {
-               nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: string(plmnId + i), NbId: string(nbId + i)}}
+               nbIdentity := &entities.NbIdentity{
+                       InventoryName: name,
+                       GlobalNbId: &entities.GlobalNbId{
+                               PlmnId: strconv.FormatInt(int64(plmnId+i), 16),
+                               NbId:   strconv.FormatInt(int64(nbId+i), 16),
+                       },
+               }
                data, err := proto.Marshal(nbIdentity)
                if err != nil {
                        t.Errorf("#rNibReader_test.TestGetListEnbIds - Failed to marshal nodeb identity entity. Error: %v", err)
@@ -530,11 +448,11 @@ func TestGetListEnbIds(t *testing.T) {
                idsEntities[i] = nbIdentity
        }
        var e error
-       sdlInstanceMock.On("GetMembers", EnbType).Return(idsData, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return(idsData, e)
        ids, er := w.GetListEnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, listSize)
-       for i, id := range *ids {
+       assert.Len(t, ids, listSize)
+       for i, id := range ids {
                assert.Equal(t, id.GetInventoryName(), name)
                assert.Equal(t, id.GetGlobalNbId().GetPlmnId(), idsEntities[i].GetGlobalNbId().GetPlmnId())
                assert.Equal(t, id.GetGlobalNbId().GetNbId(), idsEntities[i].GetGlobalNbId().GetNbId())
@@ -545,33 +463,29 @@ func TestGetListGnbIdsOneId(t *testing.T) {
        name := "name"
        plmnId := "02f829"
        nbId := "4a952a0a"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}}
        var e error
        data, err := proto.Marshal(nbIdentity)
        if err != nil {
                t.Errorf("#rNibReader_test.TestGetListGnbIds - Failed to marshal nodeb identity entity. Error: %v", err)
        }
-       sdlInstanceMock.On("GetMembers", GnbType).Return([]string{string(data)}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return([]string{string(data)}, e)
        ids, er := w.GetListGnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, 1)
-       assert.Equal(t, (*ids)[0].GetInventoryName(), name)
-       assert.Equal(t, (*ids)[0].GetGlobalNbId().GetPlmnId(), nbIdentity.GetGlobalNbId().GetPlmnId())
-       assert.Equal(t, (*ids)[0].GetGlobalNbId().GetNbId(), nbIdentity.GetGlobalNbId().GetNbId())
+       assert.Len(t, ids, 1)
+       assert.Equal(t, (ids)[0].GetInventoryName(), name)
+       assert.Equal(t, (ids)[0].GetGlobalNbId().GetPlmnId(), nbIdentity.GetGlobalNbId().GetPlmnId())
+       assert.Equal(t, (ids)[0].GetGlobalNbId().GetNbId(), nbIdentity.GetGlobalNbId().GetNbId())
 }
 
 func TestGetListGnbIdsNoIds(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GetMembers", GnbType).Return([]string{}, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return([]string{}, e)
        ids, er := w.GetListGnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, 0)
+       assert.Len(t, ids, 0)
 }
 
 func TestGetListGnbIds(t *testing.T) {
@@ -579,13 +493,17 @@ func TestGetListGnbIds(t *testing.T) {
        plmnId := 0x02f829
        nbId := 0x4a952a0a
        listSize := 3
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        idsData := make([]string, listSize)
        idsEntities := make([]*entities.NbIdentity, listSize)
        for i := 0; i < listSize; i++ {
-               nbIdentity := &entities.NbIdentity{InventoryName: name, GlobalNbId: &entities.GlobalNbId{PlmnId: string(plmnId + i), NbId: string(nbId + i)}}
+               nbIdentity := &entities.NbIdentity{
+                       InventoryName: name,
+                       GlobalNbId: &entities.GlobalNbId{
+                               PlmnId: strconv.FormatInt(int64(plmnId+i), 16),
+                               NbId:   strconv.FormatInt(int64(nbId+i), 16),
+                       },
+               }
                data, err := proto.Marshal(nbIdentity)
                if err != nil {
                        t.Errorf("#rNibReader_test.TestGetListGnbIds - Failed to marshal nodeb identity entity. Error: %v", err)
@@ -594,11 +512,11 @@ func TestGetListGnbIds(t *testing.T) {
                idsEntities[i] = nbIdentity
        }
        var e error
-       sdlInstanceMock.On("GetMembers", GnbType).Return(idsData, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(idsData, e)
        ids, er := w.GetListGnbIds()
        assert.Nil(t, er)
-       assert.Len(t, *ids, listSize)
-       for i, id := range *ids {
+       assert.Len(t, ids, listSize)
+       for i, id := range ids {
                assert.Equal(t, id.GetInventoryName(), name)
                assert.Equal(t, id.GetGlobalNbId().GetPlmnId(), idsEntities[i].GetGlobalNbId().GetPlmnId())
                assert.Equal(t, id.GetGlobalNbId().GetNbId(), idsEntities[i].GetGlobalNbId().GetNbId())
@@ -607,37 +525,31 @@ func TestGetListGnbIds(t *testing.T) {
 
 func TestGetListEnbIdsSdlgoFailure(t *testing.T) {
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var data []string
-       sdlInstanceMock.On("GetMembers", EnbType).Return(data, e)
+       sdlInstanceMock.On("GetMembers", common.GetRNibNamespace(), entities.Node_ENB.String()).Return(data, e)
        ids, er := w.GetListEnbIds()
        assert.NotNil(t, er)
        assert.Nil(t, ids)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetCountGnbListOneId(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GroupSize", GnbType).Return(1, e)
+       sdlInstanceMock.On("GroupSize", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(1, e)
        count, er := w.GetCountGnbList()
        assert.Nil(t, er)
        assert.Equal(t, count, 1)
 }
 
 func TestGetCountGnbList(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
-       sdlInstanceMock.On("GroupSize", GnbType).Return(3, e)
+       sdlInstanceMock.On("GroupSize", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(3, e)
        count, er := w.GetCountGnbList()
        assert.Nil(t, er)
        assert.Equal(t, count, 3)
@@ -645,26 +557,22 @@ func TestGetCountGnbList(t *testing.T) {
 
 func TestGetCountGnbListSdlgoFailure(t *testing.T) {
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var count int
-       sdlInstanceMock.On("GroupSize", GnbType).Return(count, e)
+       sdlInstanceMock.On("GroupSize", common.GetRNibNamespace(), entities.Node_GNB.String()).Return(count, e)
        count, er := w.GetCountGnbList()
        assert.NotNil(t, er)
        assert.Equal(t, 0, count)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetCell(t *testing.T) {
        name := "name"
        var pci uint32 = 10
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        cellEntity := entities.Cell{Type: entities.Cell_LTE_CELL, Cell: &entities.Cell_ServedCellInfo{ServedCellInfo: &entities.ServedCellInfo{Pci: pci}}}
        cellData, err := proto.Marshal(&cellEntity)
        if err != nil {
@@ -676,7 +584,7 @@ func TestGetCell(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetCell - failed to validate key parameter")
        }
        ret := map[string]interface{}{key: string(cellData)}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCell(name, pci)
        assert.Nil(t, er)
        assert.NotNil(t, cell)
@@ -688,29 +596,25 @@ func TestGetCell(t *testing.T) {
 func TestGetCellNotFoundFailure(t *testing.T) {
        name := "name"
        var pci uint32
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        key, rNibErr := common.ValidateAndBuildCellNamePciKey(name, pci)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetCellNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCell(name, pci)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getCellByKey - cell not found, key: PCI:name:00", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.Cell not found. Key: PCI:name:00", er.Error())
 }
 
 func TestGetCellUnmarshalFailure(t *testing.T) {
        name := "name"
        var pci uint32
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        ret := make(map[string]interface{}, 1)
        key, rNibErr := common.ValidateAndBuildCellNamePciKey(name, pci)
@@ -718,40 +622,36 @@ func TestGetCellUnmarshalFailure(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetCellUnmarshalFailure - failed to validate key parameter")
        }
        ret[key] = "data"
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCell(name, pci)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 2, er.GetCode())
-       assert.EqualValues(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetCellSdlgoFailure(t *testing.T) {
        name := "name"
        var pci uint32
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var ret map[string]interface{}
        key, rNibErr := common.ValidateAndBuildCellNamePciKey(name, pci)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetCellSdlgoFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCell(name, pci)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetNodebById(t *testing.T) {
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        nb := entities.NodebInfo{NodeType: entities.Node_ENB}
        nb.ConnectionStatus = 1
        nb.Ip = "localhost"
@@ -773,7 +673,7 @@ func TestGetNodebById(t *testing.T) {
                t.Errorf("Failed to validate nodeb identity, plmnId: %s, nbId: %s", plmnId, nbId)
        }
        ret := map[string]interface{}{key: string(data)}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        globalNbId := &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
        getNb, er := w.GetNodebByGlobalNbId(entities.Node_ENB, globalNbId)
        assert.Nil(t, er)
@@ -787,51 +687,45 @@ func TestGetNodebById(t *testing.T) {
 func TestGetNodebByIdNotFoundFailureEnb(t *testing.T) {
        plmnId := "02f829"
        nbId := "4a952a0a"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        key, rNibErr := common.ValidateAndBuildNodeBIdKey(entities.Node_ENB.String(), plmnId, nbId)
        if rNibErr != nil {
                t.Errorf("Failed to validate nodeb identity, plmnId: %s, nbId: %s", plmnId, nbId)
        }
        var ret map[string]interface{}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        globalNbId := &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
        getNb, er := w.GetNodebByGlobalNbId(entities.Node_ENB, globalNbId)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getNodeb - responding node not found. Key: ENB:02f829:4a952a0a", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.NodebInfo not found. Key: ENB:02f829:4a952a0a", er.Error())
 }
 
 func TestGetNodebByIdNotFoundFailureGnb(t *testing.T) {
        plmnId := "02f829"
        nbId := "4a952a0a"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        key, rNibErr := common.ValidateAndBuildNodeBIdKey(entities.Node_GNB.String(), plmnId, nbId)
        if rNibErr != nil {
                t.Errorf("Failed to validate nodeb identity, plmnId: %s, nbId: %s", plmnId, nbId)
        }
        var ret map[string]interface{}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        globalNbId := &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
        getNb, er := w.GetNodebByGlobalNbId(entities.Node_GNB, globalNbId)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getNodeb - responding node not found. Key: GNB:02f829:4a952a0a", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.NodebInfo not found. Key: GNB:02f829:4a952a0a", er.Error())
 }
 
 func TestGetNodeByIdUnmarshalFailure(t *testing.T) {
        plmnId := "02f829"
        nbId := "4a952a0a"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        key, rNibErr := common.ValidateAndBuildNodeBIdKey(entities.Node_ENB.String(), plmnId, nbId)
        if rNibErr != nil {
                t.Errorf("Failed to validate nodeb identity, plmnId: %s, nbId: %s", plmnId, nbId)
@@ -839,44 +733,40 @@ func TestGetNodeByIdUnmarshalFailure(t *testing.T) {
        var e error
        ret := make(map[string]interface{}, 1)
        ret[key] = "data"
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        globalNbId := &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
        getNb, er := w.GetNodebByGlobalNbId(entities.Node_ENB, globalNbId)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
-       assert.EqualValues(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetNodeByIdSdlgoFailure(t *testing.T) {
        plmnId := "02f829"
        nbId := "4a952a0a"
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        key, rNibErr := common.ValidateAndBuildNodeBIdKey(entities.Node_GNB.String(), plmnId, nbId)
        if rNibErr != nil {
                t.Errorf("Failed to validate nodeb identity, plmnId: %s, nbId: %s", plmnId, nbId)
        }
        e := errors.New(errMsg)
        var ret map[string]interface{}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        globalNbId := &entities.GlobalNbId{PlmnId: plmnId, NbId: nbId}
        getNb, er := w.GetNodebByGlobalNbId(entities.Node_GNB, globalNbId)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
 func TestGetCellById(t *testing.T) {
        cellId := "aaaa"
        var pci uint32 = 10
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        cellEntity := entities.Cell{Type: entities.Cell_LTE_CELL, Cell: &entities.Cell_ServedCellInfo{ServedCellInfo: &entities.ServedCellInfo{Pci: pci}}}
        cellData, err := proto.Marshal(&cellEntity)
        if err != nil {
@@ -888,7 +778,7 @@ func TestGetCellById(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetCellById - failed to validate key parameter")
        }
        ret := map[string]interface{}{key: string(cellData)}
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCellById(entities.Cell_LTE_CELL, cellId)
        assert.Nil(t, er)
        assert.NotNil(t, cell)
@@ -899,83 +789,71 @@ func TestGetCellById(t *testing.T) {
 
 func TestGetCellByIdNotFoundFailureEnb(t *testing.T) {
        cellId := "bbbb"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        key, rNibErr := common.ValidateAndBuildCellIdKey(cellId)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetCellByIdNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCellById(entities.Cell_LTE_CELL, cellId)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getCellByKey - cell not found, key: CELL:bbbb", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.Cell not found. Key: CELL:bbbb", er.Error())
 }
 
 func TestGetCellByIdNotFoundFailureGnb(t *testing.T) {
        cellId := "bbbb"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        key, rNibErr := common.ValidateAndBuildNrCellIdKey(cellId)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetCellByIdNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{key}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(ret, e)
        cell, er := w.GetCellById(entities.Cell_NR_CELL, cellId)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getCellByKey - cell not found, key: NRCELL:bbbb", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.Cell not found. Key: NRCELL:bbbb", er.Error())
 }
 
 func TestGetCellByIdTypeValidationFailure(t *testing.T) {
        cellId := "dddd"
-       readerPool = nil
-       initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, _ := initSdlSyncStorageMock()
        cell, er := w.GetCellById(5, cellId)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 3, er.GetCode())
-       assert.EqualValues(t, "3 VALIDATION_ERROR - #rNibReader.GetCellById - invalid cell type: 5", er.Error())
+       assert.IsType(t, &common.ValidationError{}, er)
+       assert.EqualValues(t, "#rNibReader.GetCellById - invalid cell type: 5", er.Error())
 }
 
 func TestGetCellByIdValidationFailureGnb(t *testing.T) {
        cellId := ""
-       readerPool = nil
-       initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, _ := initSdlSyncStorageMock()
        cell, er := w.GetCellById(entities.Cell_NR_CELL, cellId)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 3, er.GetCode())
-       assert.EqualValues(t, "3 VALIDATION_ERROR - #utils.ValidateAndBuildNrCellIdKey - an empty cell id received", er.Error())
+       assert.IsType(t, &common.ValidationError{}, er)
+       assert.EqualValues(t, "#utils.ValidateAndBuildNrCellIdKey - an empty cell id received", er.Error())
 }
 
 func TestGetCellByIdValidationFailureEnb(t *testing.T) {
        cellId := ""
-       readerPool = nil
-       initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, _ := initSdlSyncStorageMock()
        cell, er := w.GetCellById(entities.Cell_LTE_CELL, cellId)
        assert.NotNil(t, er)
        assert.Nil(t, cell)
-       assert.Equal(t, 3, er.GetCode())
-       assert.EqualValues(t, "3 VALIDATION_ERROR - #utils.ValidateAndBuildCellIdKey - an empty cell id received", er.Error())
+       assert.IsType(t, &common.ValidationError{}, er)
+       assert.EqualValues(t, "#utils.ValidateAndBuildCellIdKey - an empty cell id received", er.Error())
 }
 
 func TestGetRanLoadInformation(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        loadInfo := generateRanLoadInformation()
        var e error
        data, err := proto.Marshal(loadInfo)
@@ -987,7 +865,7 @@ func TestGetRanLoadInformation(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetRanLoadInformationNotFoundFailure - failed to validate key parameter")
        }
        ret := map[string]interface{}{redisKey: string(data)}
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getLoadInfo, er := w.GetRanLoadInformation(name)
        assert.Nil(t, er)
        assert.NotNil(t, getLoadInfo)
@@ -1002,30 +880,36 @@ func TestGetRanLoadInformation(t *testing.T) {
        assert.EqualValues(t, expected, actual)
 }
 
+func TestGetRanLoadInformationValidationFailure(t *testing.T) {
+       name := ""
+       w, _ := initSdlSyncStorageMock()
+       getNb, er := w.GetRanLoadInformation(name)
+       assert.NotNil(t, er)
+       assert.Nil(t, getNb)
+       assert.IsType(t, &common.ValidationError{}, er)
+       assert.EqualValues(t, "#utils.ValidateAndBuildRanLoadInformationKey - an empty inventory name received", er.Error())
+}
+
 func TestGetRanLoadInformationNotFoundFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        var ret map[string]interface{}
        redisKey, rNibErr := common.ValidateAndBuildRanLoadInformationKey(name)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetRanLoadInformationNotFoundFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetRanLoadInformation(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 1, er.GetCode())
-       assert.EqualValues(t, "1 RESOURCE_NOT_FOUND - #rNibReader.getByKeyAndUnmarshal - entity of type *entities.RanLoadInformation not found. Key: LOAD:name", er.Error())
+       assert.IsType(t, &common.ResourceNotFoundError{}, er)
+       assert.EqualValues(t, "#rNibReader.getByKeyAndUnmarshal - entity of type *entities.RanLoadInformation not found. Key: LOAD:name", er.Error())
 }
 
 func TestGetRanLoadInformationUnmarshalFailure(t *testing.T) {
        name := "name"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        var e error
        ret := make(map[string]interface{}, 1)
        redisKey, rNibErr := common.ValidateAndBuildRanLoadInformationKey(name)
@@ -1033,32 +917,30 @@ func TestGetRanLoadInformationUnmarshalFailure(t *testing.T) {
                t.Errorf("#rNibReader_test.TestGetRanLoadInformationUnmarshalFailure - failed to validate key parameter")
        }
        ret[redisKey] = "data"
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetRanLoadInformation(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
-       assert.EqualValues(t, "2 INTERNAL_ERROR - proto: can't skip unknown wire type 4", er.Error())
+       assert.IsType(t, &common.InternalError{}, er)
+       assert.Contains(t,  er.Error(), "proto:")
 }
 
 func TestGetRanLoadInformationSdlgoFailure(t *testing.T) {
        name := "name"
        errMsg := "expected Sdlgo error"
-       errMsgExpected := "2 INTERNAL_ERROR - expected Sdlgo error"
-       readerPool = nil
-       sdlInstanceMock := initSdlInstanceMock(namespace, 1)
-       w := GetRNibReader()
+       errMsgExpected := "expected Sdlgo error"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
        e := errors.New(errMsg)
        var ret map[string]interface{}
        redisKey, rNibErr := common.ValidateAndBuildRanLoadInformationKey(name)
        if rNibErr != nil {
                t.Errorf("#rNibReader_test.TestGetRanLoadInformationSdlgoFailure - failed to validate key parameter")
        }
-       sdlInstanceMock.On("Get", []string{redisKey}).Return(ret, e)
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
        getNb, er := w.GetRanLoadInformation(name)
        assert.NotNil(t, er)
        assert.Nil(t, getNb)
-       assert.Equal(t, 2, er.GetCode())
+       assert.IsType(t, &common.InternalError{}, er)
        assert.EqualValues(t, errMsgExpected, er.Error())
 }
 
@@ -1071,54 +953,54 @@ func generateCellLoadInformation() *entities.CellLoadInformation {
        cellLoadInformation.UlInterferenceOverloadIndications = []entities.UlInterferenceOverloadIndication{ulInterferenceOverloadIndication}
 
        ulHighInterferenceInformation := entities.UlHighInterferenceInformation{
-               TargetCellId:"456",
-               UlHighInterferenceIndication:"xxx",
+               TargetCellId:                 "456",
+               UlHighInterferenceIndication: "xxx",
        }
 
-       cellLoadInformation.UlHighInterferenceInfos = []*entities.UlHighInterferenceInformation{&ulHighInterferenceInformation }
+       cellLoadInformation.UlHighInterferenceInfos = []*entities.UlHighInterferenceInformation{&ulHighInterferenceInformation}
 
        cellLoadInformation.RelativeNarrowbandTxPower = &entities.RelativeNarrowbandTxPower{
-               RntpPerPrb:"xxx",
-               RntpThreshold:entities.RntpThreshold_NEG_4,
+               RntpPerPrb:                       "xxx",
+               RntpThreshold:                    entities.RntpThreshold_NEG_4,
                NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V1_ANT_PRT,
-               PB: 1,
-               PdcchInterferenceImpact:2,
+               PB:                               1,
+               PdcchInterferenceImpact:          2,
                EnhancedRntp: &entities.EnhancedRntp{
-                       EnhancedRntpBitmap:"xxx",
-                       RntpHighPowerThreshold:entities.RntpThreshold_NEG_2,
-                       EnhancedRntpStartTime: &entities.StartTime{StartSfn:500,StartSubframeNumber:5},
+                       EnhancedRntpBitmap:     "xxx",
+                       RntpHighPowerThreshold: entities.RntpThreshold_NEG_2,
+                       EnhancedRntpStartTime:  &entities.StartTime{StartSfn: 500, StartSubframeNumber: 5},
                },
        }
 
        cellLoadInformation.AbsInformation = &entities.AbsInformation{
-               Mode: entities.AbsInformationMode_ABS_INFO_FDD,
-               AbsPatternInfo:"xxx",
-               NumberOfCellSpecificAntennaPorts:entities.NumberOfCellSpecificAntennaPorts_V2_ANT_PRT,
-               MeasurementSubset:"xxx",
+               Mode:                             entities.AbsInformationMode_ABS_INFO_FDD,
+               AbsPatternInfo:                   "xxx",
+               NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V2_ANT_PRT,
+               MeasurementSubset:                "xxx",
        }
 
        cellLoadInformation.InvokeIndication = entities.InvokeIndication_ABS_INFORMATION
 
        cellLoadInformation.ExtendedUlInterferenceOverloadInfo = &entities.ExtendedUlInterferenceOverloadInfo{
-               AssociatedSubframes:"xxx",
-               ExtendedUlInterferenceOverloadIndications:cellLoadInformation.UlInterferenceOverloadIndications,
+               AssociatedSubframes:                       "xxx",
+               ExtendedUlInterferenceOverloadIndications: cellLoadInformation.UlInterferenceOverloadIndications,
        }
 
        compInformationItem := &entities.CompInformationItem{
-               CompHypothesisSets: []*entities.CompHypothesisSet{&entities.CompHypothesisSet{CellId: "789", CompHypothesis:"xxx"}},
-               BenefitMetric:50,
+               CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "789", CompHypothesis: "xxx"}},
+               BenefitMetric:      50,
        }
 
        cellLoadInformation.CompInformation = &entities.CompInformation{
-               CompInformationItems:[]*entities.CompInformationItem{compInformationItem},
-               CompInformationStartTime:&entities.StartTime{StartSfn:123,StartSubframeNumber:456},
+               CompInformationItems:     []*entities.CompInformationItem{compInformationItem},
+               CompInformationStartTime: &entities.StartTime{StartSfn: 123, StartSubframeNumber: 456},
        }
 
        cellLoadInformation.DynamicDlTransmissionInformation = &entities.DynamicDlTransmissionInformation{
-               State: entities.NaicsState_NAICS_ACTIVE,
-               TransmissionModes:"xxx",
-               PB: 2,
-               PAList:[]entities.PA{entities.PA_DB_NEG_3},
+               State:             entities.NaicsState_NAICS_ACTIVE,
+               TransmissionModes: "xxx",
+               PB:                2,
+               PAList:            []entities.PA{entities.PA_DB_NEG_3},
        }
 
        return &cellLoadInformation
@@ -1135,8 +1017,262 @@ func generateRanLoadInformation() *entities.RanLoadInformation {
        return &ranLoadInformation
 }
 
-//integration tests
+func TestGetE2TInstanceSuccess(t *testing.T) {
+       address := "10.10.2.15:9800"
+       redisKey, validationErr := common.ValidateAndBuildE2TInstanceKey(address)
+
+       if validationErr != nil {
+               t.Errorf("#rNibReader_test.TestGetE2TInstanceSuccess - Failed to build E2T Instance key. Error: %v", validationErr)
+       }
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       e2tInstance := generateE2tInstance(address)
+       data, err := json.Marshal(e2tInstance)
+
+       if err != nil {
+               t.Errorf("#rNibReader_test.TestGetE2TInstanceSuccess - Failed to marshal E2tInstance entity. Error: %v", err)
+       }
+
+       var e error
+       ret := map[string]interface{}{redisKey: string(data)}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
+
+       res, rNibErr := w.GetE2TInstance(address)
+       assert.Nil(t, rNibErr)
+       assert.Equal(t, e2tInstance, res)
+}
+
+func TestUnmarshal(t *testing.T) {
+       e2tInstance := generateE2tInstance("10.0.2.15:5555")
+       marshaled, _ := json.Marshal(e2tInstance)
+       m := map[string]interface{}{
+               "whatever": string(marshaled),
+       }
+       var entity entities.E2TInstance
+       err := json.Unmarshal([]byte(m["whatever"].(string)), &entity)
+       assert.Nil(t, err)
+}
+
+func TestGetE2TInstanceEmptyAddressFailure(t *testing.T) {
+       w, _ := initSdlSyncStorageMock()
+       res, err := w.GetE2TInstance("")
+       assert.NotNil(t, err)
+       assert.IsType(t, &common.ValidationError{}, err)
+       assert.Nil(t, res)
+}
+
+func TestGetE2TInstanceSdlError(t *testing.T) {
+       address := "10.10.2.15:9800"
+       redisKey, validationErr := common.ValidateAndBuildE2TInstanceKey(address)
+
+       if validationErr != nil {
+               t.Errorf("#rNibReader_test.TestGetE2TInstanceSuccess - Failed to build E2T Instance key. Error: %v", validationErr)
+       }
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       expectedErr := errors.New("expected error")
+       var ret map[string]interface{}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, expectedErr)
+
+       res, rNibErr := w.GetE2TInstance(address)
+       assert.NotNil(t, rNibErr)
+       assert.Nil(t, res)
+}
+
+func generateE2tInstance(address string) *entities.E2TInstance {
+       e2tInstance := entities.NewE2TInstance(address,"")
+       e2tInstance.AssociatedRanList = []string{"test1", "test2"}
+       e2tInstance.DeletionTimestamp = time.Now().UnixNano()
+       return e2tInstance
+}
+
+func TestGetE2TAddressesSdlError(t *testing.T) {
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       expectedErr := errors.New("expected error")
+       var ret map[string]interface{}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{E2TAddressesKey}).Return(ret, expectedErr)
+
+       res, rNibErr := w.GetE2TAddresses()
+       assert.NotNil(t, rNibErr)
+       assert.Nil(t, res)
+}
+
+func TestGetE2TAddressesSuccess(t *testing.T) {
+       address := "10.10.2.15:9800"
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       e2tAddresses := []string{address}
+       data, err := json.Marshal(e2tAddresses)
+
+       if err != nil {
+               t.Errorf("#rNibReader_test.TestGetE2TInfoListSuccess - Failed to marshal E2TInfoList. Error: %v", err)
+       }
+
+       var e error
+       ret := map[string]interface{}{E2TAddressesKey: string(data)}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{E2TAddressesKey}).Return(ret, e)
+
+       res, rNibErr := w.GetE2TAddresses()
+       assert.Nil(t, rNibErr)
+       assert.Equal(t, e2tAddresses, res)
+}
 
+func TestGetE2TInstancesSuccess(t *testing.T) {
+       address := "10.10.2.15:9800"
+       address2 := "10.10.2.16:9800"
+       redisKey, _ := common.ValidateAndBuildE2TInstanceKey(address)
+       redisKey2, _ := common.ValidateAndBuildE2TInstanceKey(address2)
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       e2tInstance1 := generateE2tInstance(address)
+       e2tInstance2 := generateE2tInstance(address2)
+
+       data1, _ := json.Marshal(e2tInstance1)
+       data2, _ := json.Marshal(e2tInstance2)
+
+       var e error
+       ret := map[string]interface{}{redisKey: string(data1), redisKey2: string(data2)}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey, redisKey2}).Return(ret, e)
+
+       res, err := w.GetE2TInstances([]string{address, address2})
+       assert.Nil(t, err)
+       assert.Equal(t, []*entities.E2TInstance{e2tInstance1, e2tInstance2}, res)
+}
+
+func TestGetE2TInstancesUnmarhalPartialSuccess(t *testing.T) {
+       address := "10.10.2.15:9800"
+       address2 := "10.10.2.16:9800"
+       redisKey, _ := common.ValidateAndBuildE2TInstanceKey(address)
+       redisKey2, _ := common.ValidateAndBuildE2TInstanceKey(address2)
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       e2tInstance1 := generateE2tInstance(address)
+       data1, _ := json.Marshal(e2tInstance1)
+
+       var e error
+       ret := map[string]interface{}{redisKey: string(data1), redisKey2: "abc"}
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey, redisKey2}).Return(ret, e)
+
+       res, err := w.GetE2TInstances([]string{address, address2})
+       assert.Nil(t, err)
+       assert.Equal(t, []*entities.E2TInstance{e2tInstance1}, res)
+}
+
+func TestGetE2TInstancesSdlFailure(t *testing.T) {
+       address := "10.10.2.15:9800"
+       address2 := "10.10.2.16:9800"
+       redisKey, _ := common.ValidateAndBuildE2TInstanceKey(address)
+       redisKey2, _ := common.ValidateAndBuildE2TInstanceKey(address2)
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey, redisKey2}).Return(map[string]interface{}{}, fmt.Errorf(""))
+       _, err := w.GetE2TInstances([]string{address, address2})
+       assert.IsType(t, &common.InternalError{}, err)
+}
+
+func TestGetE2TInstancesEmptyData(t *testing.T) {
+       address := "10.10.2.15:9800"
+       address2 := "10.10.2.16:9800"
+       redisKey, _ := common.ValidateAndBuildE2TInstanceKey(address)
+       redisKey2, _ := common.ValidateAndBuildE2TInstanceKey(address2)
+
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey, redisKey2}).Return(map[string]interface{}{}, nil)
+       _, err := w.GetE2TInstances([]string{address, address2})
+       assert.IsType(t, &common.ResourceNotFoundError{}, err)
+}
+
+func TestGetGeneralConfiguration(t *testing.T) {
+
+       key := common.BuildGeneralConfigurationKey()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       configurationData := "{\"enableRic\":true}"
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(map[string]interface{}{key: configurationData}, nil)
+
+       res, rNibErr := w.GetGeneralConfiguration()
+       assert.Nil(t, rNibErr)
+       assert.Equal(t, true, res.EnableRic)
+}
+
+func TestGetGeneralConfigurationNotFound(t *testing.T) {
+
+       key := common.BuildGeneralConfigurationKey()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(map[string]interface{}{}, nil)
+
+       _, rNibErr := w.GetGeneralConfiguration()
+
+       assert.NotNil(t, rNibErr)
+       assert.Equal(t, "#rNibReader.getByKeyAndUnmarshalJson - entity of type *entities.GeneralConfiguration not found. Key: GENERAL", rNibErr.Error())
+}
+
+func TestGetGeneralConfigurationSdlFailure(t *testing.T) {
+
+       key := common.BuildGeneralConfigurationKey()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(map[string]interface{}{}, fmt.Errorf("sdl error"))
+
+       _, rNibErr := w.GetGeneralConfiguration()
+
+       assert.NotNil(t, rNibErr)
+
+       assert.Equal(t, "sdl error", rNibErr.Error())
+}
+
+func TestGetGeneralConfigurationUnmarshalError(t *testing.T) {
+
+       key := common.BuildGeneralConfigurationKey()
+       w, sdlInstanceMock := initSdlSyncStorageMock()
+
+       configurationData := "{\"enableRic :true}"
+       sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{key}).Return(map[string]interface{}{key: configurationData}, nil)
+
+       _, rNibErr := w.GetGeneralConfiguration()
+
+       assert.NotNil(t, rNibErr)
+       assert.Equal(t, rNibErr.Error(), "unexpected end of JSON input")
+}
+
+func TestGetRanFunctionDefinition(t *testing.T) {
+    name := "name"
+    oid := "1.3.6.1.4.1.1.2.2.2"
+    w, sdlInstanceMock := initSdlSyncStorageMock()
+    nb := entities.NodebInfo{}
+    nb.ConnectionStatus = 1
+    nb.Ip = "localhost"
+    nb.Port = 5656
+    enb := entities.Enb{}
+    cell := entities.ServedCellInfo{Tac: "tac"}
+    enb.ServedCells = []*entities.ServedCellInfo{&cell}
+    nb.Configuration = &entities.NodebInfo_Enb{Enb: &enb}
+    var e error
+    data, err := proto.Marshal(&nb)
+    if err != nil {
+        t.Errorf("#rNibReader_test.GetRanFunctionDefinition - Failed to marshal ENB instance. Error: %v", err)
+    }
+    redisKey, rNibErr := common.ValidateAndBuildNodeBNameKey(name)
+    if rNibErr != nil {
+        t.Errorf("#rNibReader_test.TestRanFunctionDefinition - failed to validate key parameter")
+    }
+    ret := map[string]interface{}{redisKey: string(data)}
+    sdlInstanceMock.On("Get", common.GetRNibNamespace(), []string{redisKey}).Return(ret, e)
+    ranFuncs, er := w.GetRanFunctionDefinition(name, oid)
+    assert.IsType(t, &common.ResourceNotFoundError{}, er)
+    assert.Nil(t, ranFuncs)
+}
+
+//integration tests
+//
 //func TestGetEnbInteg(t *testing.T){
 //     name := "nameEnb1"
 //     Init("namespace", 1)
@@ -1196,7 +1332,7 @@ func generateRanLoadInformation() *entities.RanLoadInformation {
 //     if err != nil{
 //             fmt.Println(err)
 //     } else {
-//             for _, id := range *ids{
+//             for _, id := range ids{
 //                     fmt.Printf("#TestGetListEnbIdsInteg - ENB ID: %s\n", id)
 //             }
 //     }
@@ -1209,7 +1345,7 @@ func generateRanLoadInformation() *entities.RanLoadInformation {
 //     if err != nil{
 //             fmt.Println(err)
 //     } else {
-//             for _, id := range *ids{
+//             for _, id := range ids{
 //                     fmt.Printf("#TestGetListGnbIdsInteg - GNB ID: %s\n", id)
 //             }
 //     }
@@ -1262,3 +1398,35 @@ func generateRanLoadInformation() *entities.RanLoadInformation {
 //             fmt.Printf("responding node type NR Cell: %v\n", cell.GetServedNrCell())
 //     }
 //}
+//
+//func TestGetListNbIdsInteg(t *testing.T) {
+//     Init("e2Manager", 1)
+//     w := GetRNibReader()
+//     ids, err := w.GetListNodebIds()
+//     if err != nil{
+//             fmt.Println(err)
+//     } else {
+//             for _, id := range ids{
+//                     fmt.Printf("#TestGetListGnbIdsInteg - NB ID: %s\n", id)
+//             }
+//     }
+//}
+//
+//func TestGetRanLoadInformationInteg(t *testing.T){
+//     Init("e2Manager", 1)
+//     w := GetRNibReader()
+//     ranLoadInformation, err := w.GetRanLoadInformation("ran_integ")
+//     if err != nil{
+//             t.Errorf("#rNibReader_test.TestGetRanLoadInformationInteg - Failed to get RanLoadInformation entity. Error: %v", err)
+//     }
+//     assert.NotNil(t, ranLoadInformation)
+//     fmt.Printf("#rNibReader_test.TestGetRanLoadInformationInteg - GNB ID: %s\n", ranLoadInformation)
+//}
+
+//func TestGetE2TInstancesInteg(t *testing.T) {
+//     db := sdlgo.NewDatabase()
+//     sdl := sdlgo.NewSdlInstance("e2Manager", db)
+//     rnibReader := GetRNibReader(sdl)
+//     e2tInstances, _ := rnibReader.GetE2TInstances([]string{"e2t.att.com:38000","whatever"})
+//     assert.Len(t, e2tInstances, 1)
+//}