"net/http"
"net/http/httptest"
"os"
- "time"
"strconv"
"testing"
+ "time"
"gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/appmgr"
"gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/models"
var rh *Resthook
var resp models.SubscriptionResponse
var mockedSdl *SdlMock
-var mockedSdl2 *SdlMock
// Test cases
func TestMain(m *testing.M) {
appmgr.Logger.SetLevel(0)
mockedSdl = new(SdlMock)
- mockedSdl2 = new(SdlMock)
NewResthook(false)
- rh = createResthook(false, mockedSdl,mockedSdl2)
+ rh = createResthook(false, mockedSdl)
code := m.Run()
os.Exit(code)
}
func TestDeletesubscriptionSuccess(t *testing.T) {
var mockSdlRetOk error
- mockedSdl.On("Set", mock.Anything).Return(mockSdlRetOk)
+ mockedSdl.On("Set", appmgrSdlNs, mock.Anything).Return(mockSdlRetOk)
resp := rh.AddSubscription(createSubscription(models.EventTypeDeleted, int64(5), int64(10), "http://localhost:8087/xapps_hook2"))
assert.Equal(t, resp.Version, int64(0))
assert.Equal(t, resp.EventType, models.EventTypeDeleted)
func TestRestoreSubscriptionsSuccess(t *testing.T) {
var mockSdlRetOk error
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
key := "key-1"
subsReq := createSubscription(models.EventTypeCreated, int64(5), int64(10), "http://localhost:8087/xapps_hook")
mockSdlGetRetVal := make(map[string]interface{})
//Cast data to string to act like a real SDL/Redis client
mockSdlGetRetVal[key] = string(serializedSubsReq)
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetOk).Once()
- restHook := createResthook(true, mSdl,mSdl2)
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetOk).Once()
+ restHook := createResthook(true, mSdl)
val, found := restHook.subscriptions.Get(key)
assert.True(t, found)
func TestRestoreSubscriptionsFailsIfSdlGetAllFails(t *testing.T) {
var mockSdlRetStatus error
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
getCalled := 0
- mGetAllCall := mSdl.On("GetAll")
+ mGetAllCall := mSdl.On("GetAll", appmgrSdlNs)
mGetAllCall.RunFn = func(args mock.Arguments) {
if getCalled > 0 {
mockSdlRetStatus = errors.New("some SDL error")
mGetAllCall.ReturnArguments = mock.Arguments{[]string{}, mockSdlRetStatus}
}
- restHook := createResthook(true, mSdl,mSdl2)
+ restHook := createResthook(true, mSdl)
assert.Equal(t, 0, len(restHook.subscriptions.Items()))
}
func TestRestoreSubscriptionsFailsIfSdlGetFails(t *testing.T) {
var mockSdlRetOk error
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
key := "key-1"
subsReq := createSubscription(models.EventTypeCreated, int64(5), int64(10), "http://localhost:8087/xapps_hook")
mockSdlGetRetVal := make(map[string]interface{})
mockSdlGetRetVal[key] = serializedSubsReq
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- restHook := createResthook(true, mSdl,mSdl2)
+ restHook := createResthook(true, mSdl)
assert.Equal(t, 0, len(restHook.subscriptions.Items()))
}
func TestTeardown(t *testing.T) {
var mockSdlRetOk error
- mockedSdl.On("RemoveAll").Return(mockSdlRetOk).Once()
+ mockedSdl.On("RemoveAll", appmgrSdlNs).Return(mockSdlRetOk).Once()
rh.FlushSubscriptions()
}
var params models.RegisterRequest
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
var tEndpoint1 string = "10.104.237.59:8087"
params.HTTPEndpoint = &tEndpoint1
mockSdlGetRetVal2 := make(map[string]interface{})
mockSdlGetRetVal2[value] = serializedSubsReq2
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once()
- restHook := createResthook(false, mSdl,mSdl2)
+ restHook := createResthook(false, mSdl)
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once()
ret := restHook.GetAppsInSDL()
if ret == nil {
var params models.RegisterRequest
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
serializedSubsReq1, err := json.Marshal(params)
mockSdlGetRetVal1 := make(map[string]interface{})
mockSdlGetRetVal1[key] = serializedSubsReq1
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- restHook := createResthook(false, mSdl,mSdl2)
+ restHook := createResthook(false, mSdl)
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
ret2 := restHook.GetAppsInSDL()
if ret2 != nil {
- t.Logf("SDL Returning: %s \n",*ret2)
- }else{
+ t.Logf("SDL Returning: %s \n", *ret2)
+ } else {
assert.Nil(t, ret2)
}
}
var params models.RegisterRequest
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
var tEndpoint1 string = "10.104.237.59:8087"
mockSdlGetRetVal1 := make(map[string]interface{})
mockSdlGetRetVal1[key] = serializedSubsReq1
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- restHook := createResthook(false, mSdl,mSdl2)
+ restHook := createResthook(false, mSdl)
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk)
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk)
restHook.UpdateAppData(params, true)
}
var params models.RegisterRequest
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
var tEndpoint1 string = "10.104.237.59:8087"
params.HTTPEndpoint = &tEndpoint1
- appsindb := []string{ "10.104.237.59:8088 " , " ", " "," 10.104.237.59:8087"}
+ appsindb := []string{"10.104.237.59:8088 ", " ", " ", " 10.104.237.59:8087"}
serializedSubsReq1, err := json.Marshal(appsindb)
if err != nil {
t.Logf("error in marshal .. %v", err)
mockSdlGetRetVal1 := make(map[string]interface{})
mockSdlGetRetVal1[value] = serializedSubsReq1
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- restHook := createResthook(false, mSdl,mSdl2)
+ restHook := createResthook(false, mSdl)
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- mSdl2.On("Set", []string{value}).Return(mockSdlRetOk).Twice()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("Set", appDbSdlNs, []string{value}).Return(mockSdlRetOk).Twice()
- mSdl2.On("Remove").Return(mockSdlRetOk)
- mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk)
+ mSdl.On("Remove", appDbSdlNs, mock.Anything).Return(mockSdlRetOk)
+ mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk)
restHook.UpdateAppData(params, true)
}
-
func TestUpdateAppDataSucc2(t *testing.T) {
var mockSdlRetOk error
var params models.RegisterRequest
mSdl := new(SdlMock)
- mSdl2 := new(SdlMock)
mockSdlRetNok := errors.New("some SDL error")
var tEndpoint1 string = "10.104.237.59:8087"
mockSdlGetRetVal1 := make(map[string]interface{})
mockSdlGetRetVal1[value] = serializedSubsReq1
- mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice()
- mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice()
+ mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- restHook := createResthook(false, mSdl,mSdl2)
+ restHook := createResthook(false, mSdl)
- mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
- mSdl2.On("Set", []string{value}).Return(mockSdlRetOk).Twice()
+ mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once()
+ mSdl.On("Set", appDbSdlNs, []string{value}).Return(mockSdlRetOk).Twice()
- mSdl2.On("Remove").Return(mockSdlRetOk)
- mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk)
+ mSdl.On("Remove", appDbSdlNs, mock.Anything).Return(mockSdlRetOk)
+ mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk)
restHook.UpdateAppData(params, true)
}
func createSubscription(et models.EventType, maxRetries, retryTimer int64, targetUrl string) models.SubscriptionRequest {
func flushExistingSubscriptions() {
var mockSdlRetOk error
- mockedSdl.On("RemoveAll").Return(mockSdlRetOk).Once()
+ mockedSdl.On("RemoveAll", appmgrSdlNs).Return(mockSdlRetOk).Once()
rh.FlushSubscriptions()
}
func (m *SdlMock) expectDbSet(t *testing.T, subsReq models.SubscriptionRequest, mockRet error) {
serializedSubReq, _ := json.Marshal(subsReq)
- m.On("Set", mock.Anything).Run(
+ m.On("Set", appmgrSdlNs, mock.Anything).Run(
func(args mock.Arguments) {
- sdlKVs := args.Get(0).([]interface{})
+ sdlKVs := args.Get(1).([]interface{})
assert.Equal(t, 2, len(sdlKVs))
//Validate that subscription request is set to SDL
assert.Equal(t, serializedSubReq, sdlKVs[1])
v, ok := rh.subscriptions.Get(resp.ID)
assert.True(t, ok)
if v == nil {
- t.Logf("value : %+v",v)
+ t.Logf("value : %+v", v)
}
- rh.PublishSubscription(xapp,models.EventTypeUndeployed)
+ rh.PublishSubscription(xapp, models.EventTypeUndeployed)
}
type SdlMock struct {
mock.Mock
}
-func (m *SdlMock) Set(pairs ...interface{}) error {
- a := m.Called(pairs)
+func (m *SdlMock) Set(ns string, pairs ...interface{}) error {
+ a := m.Called(ns, pairs)
return a.Error(0)
}
-func (m *SdlMock) Get(keys []string) (map[string]interface{}, error) {
- a := m.Called(keys)
+func (m *SdlMock) Get(ns string, keys []string) (map[string]interface{}, error) {
+ a := m.Called(ns, keys)
return a.Get(0).(map[string]interface{}), a.Error(1)
}
-func (m *SdlMock) GetAll() ([]string, error) {
- a := m.Called()
+func (m *SdlMock) GetAll(ns string) ([]string, error) {
+ a := m.Called(ns)
return a.Get(0).([]string), a.Error(1)
}
-func (m *SdlMock) RemoveAll() error {
- a := m.Called()
+func (m *SdlMock) RemoveAll(ns string) error {
+ a := m.Called(ns)
return a.Error(0)
}
-func (m *SdlMock) Remove(keys []string) error {
- a := m.Called()
+func (m *SdlMock) Remove(ns string, keys []string) error {
+ a := m.Called(ns)
return a.Error(0)
}