X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fresthooks%2Fresthooks_test.go;fp=pkg%2Fresthooks%2Fresthooks_test.go;h=df66a838ed787e80a5ef72c7d52b80290f9da9f8;hb=a0a851033720e92477a65fb42221dda3a519ac6c;hp=d2120c26aa0b9f79f40db5997fe3ddc87d857603;hpb=576a7e55d3f1acddba1a252ea6007be280aa6edf;p=ric-plt%2Fappmgr.git diff --git a/pkg/resthooks/resthooks_test.go b/pkg/resthooks/resthooks_test.go index d2120c2..df66a83 100755 --- a/pkg/resthooks/resthooks_test.go +++ b/pkg/resthooks/resthooks_test.go @@ -29,9 +29,9 @@ import ( "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" @@ -40,7 +40,6 @@ import ( var rh *Resthook var resp models.SubscriptionResponse var mockedSdl *SdlMock -var mockedSdl2 *SdlMock // Test cases func TestMain(m *testing.M) { @@ -48,9 +47,8 @@ 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) } @@ -74,7 +72,7 @@ func TestAddSubscriptionExists(t *testing.T) { 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) @@ -205,7 +203,6 @@ func TestNotifyReturnsErrorAfterRetriesIfNoHttpServer(t *testing.T) { 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") @@ -215,9 +212,9 @@ func TestRestoreSubscriptionsSuccess(t *testing.T) { 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) @@ -227,9 +224,8 @@ func TestRestoreSubscriptionsSuccess(t *testing.T) { 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") @@ -238,14 +234,13 @@ func TestRestoreSubscriptionsFailsIfSdlGetAllFails(t *testing.T) { 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") @@ -255,16 +250,16 @@ func TestRestoreSubscriptionsFailsIfSdlGetFails(t *testing.T) { 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() } @@ -281,7 +276,6 @@ func TestUpdateAppDataFail2(t *testing.T) { 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 @@ -301,13 +295,13 @@ func TestUpdateAppDataFail2(t *testing.T) { 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 { @@ -320,7 +314,6 @@ func TestGetAppsInSDLFail3(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") serializedSubsReq1, err := json.Marshal(params) @@ -340,17 +333,17 @@ func TestGetAppsInSDLFail3(t *testing.T) { 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) } } @@ -360,7 +353,6 @@ func TestUpdateAppDataSucc(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") var tEndpoint1 string = "10.104.237.59:8087" @@ -381,14 +373,14 @@ func TestUpdateAppDataSucc(t *testing.T) { 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) } @@ -397,12 +389,11 @@ func TestUpdateAppDataSucc1(t *testing.T) { 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) @@ -419,27 +410,25 @@ func TestUpdateAppDataSucc1(t *testing.T) { 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" @@ -461,17 +450,17 @@ func TestUpdateAppDataSucc2(t *testing.T) { 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 { @@ -503,7 +492,7 @@ func generateXapp(name, status, ver, iname, istatus, ip, port string) (x models. func flushExistingSubscriptions() { var mockSdlRetOk error - mockedSdl.On("RemoveAll").Return(mockSdlRetOk).Once() + mockedSdl.On("RemoveAll", appmgrSdlNs).Return(mockSdlRetOk).Once() rh.FlushSubscriptions() } @@ -530,9 +519,9 @@ func createHTTPServer(t *testing.T, method, url string, port, status int, respDa 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]) @@ -548,36 +537,36 @@ func TestPublishSubscription(t *testing.T) { 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) }