X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fclients%2Frouting_manager_client_test.go;h=686733eba0a6a01e7760512580f61677bf6ebe17;hb=refs%2Fchanges%2F16%2F5116%2F1;hp=59e61254f0b5992eeaa04b525e98ccd2d7bf5ee8;hpb=8a5bfb08333e955f36321026444ab52989fbf3ec;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/clients/routing_manager_client_test.go b/E2Manager/clients/routing_manager_client_test.go index 59e6125..686733e 100644 --- a/E2Manager/clients/routing_manager_client_test.go +++ b/E2Manager/clients/routing_manager_client_test.go @@ -17,12 +17,12 @@ // This source code is part of the near-RT RIC (RAN Intelligent Controller) // platform project (RICP). - package clients import ( "bytes" "e2mgr/configuration" + "e2mgr/e2managererrors" "e2mgr/logger" "e2mgr/mocks" "e2mgr/models" @@ -35,9 +35,9 @@ import ( ) const E2TAddress = "10.0.2.15:38000" +const E2TAddress2 = "10.0.2.15:38001" const RanName = "test1" - func initRoutingManagerClientTest(t *testing.T) (*RoutingManagerClient, *mocks.HttpClientMock, *configuration.Configuration) { logger := initLog(t) config := &configuration.Configuration{} @@ -47,6 +47,44 @@ func initRoutingManagerClientTest(t *testing.T) (*RoutingManagerClient, *mocks.H return rmClient, httpClientMock, config } +func TestDeleteE2TInstanceSuccess(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.NewRoutingManagerDeleteRequestModel(E2TAddress, []string{"test1"}, nil) + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + "e2t" + respBody := ioutil.NopCloser(bytes.NewBufferString("")) + httpClientMock.On("Delete", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusOK, Body: respBody}, nil) + err := rmClient.DeleteE2TInstance(E2TAddress, []string{"test1"}) + assert.Nil(t, err) +} + +func TestDeleteE2TInstanceFailure(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.NewRoutingManagerDeleteRequestModel(E2TAddress, []string{"test1"}, nil) + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + "e2t" + respBody := ioutil.NopCloser(bytes.NewBufferString("")) + httpClientMock.On("Delete", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil) + err := rmClient.DeleteE2TInstance(E2TAddress, []string{"test1"}) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) +} + +func TestDeleteE2TInstanceDeleteFailure(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.NewRoutingManagerDeleteRequestModel(E2TAddress, []string{"test1"}, nil) + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + "e2t" + httpClientMock.On("Delete", url, "application/json", body).Return(&http.Response{}, errors.New("error")) + err := rmClient.DeleteE2TInstance(E2TAddress, []string{"test1"}) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) +} + func TestAddE2TInstanceSuccess(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) @@ -69,7 +107,7 @@ func TestAddE2TInstanceHttpPostFailure(t *testing.T) { url := config.RoutingManager.BaseUrl + "e2t" httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{}, errors.New("error")) err := rmClient.AddE2TInstance(E2TAddress) - assert.NotNil(t, err) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) } func TestAddE2TInstanceFailure(t *testing.T) { @@ -80,7 +118,7 @@ func TestAddE2TInstanceFailure(t *testing.T) { body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + "e2t" respBody := ioutil.NopCloser(bytes.NewBufferString("")) - httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body:respBody}, nil) + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil) err := rmClient.AddE2TInstance(E2TAddress) assert.NotNil(t, err) } @@ -88,7 +126,7 @@ func TestAddE2TInstanceFailure(t *testing.T) { func TestAssociateRanToE2TInstance_Success(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix @@ -101,32 +139,32 @@ func TestAssociateRanToE2TInstance_Success(t *testing.T) { func TestAssociateRanToE2TInstance_RoutingManagerError(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{}, errors.New("error")) err := rmClient.AssociateRanToE2TInstance(E2TAddress, RanName) - assert.NotNil(t, err) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) } func TestAssociateRanToE2TInstance_RoutingManager_400(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix respBody := ioutil.NopCloser(bytes.NewBufferString("")) - httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body:respBody}, nil) + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil) err := rmClient.AssociateRanToE2TInstance(E2TAddress, RanName) - assert.NotNil(t, err) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) } func TestDissociateRanE2TInstance_Success(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix @@ -139,26 +177,73 @@ func TestDissociateRanE2TInstance_Success(t *testing.T) { func TestDissociateRanE2TInstance_RoutingManagerError(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{}, errors.New("error")) err := rmClient.DissociateRanE2TInstance(E2TAddress, RanName) - assert.NotNil(t, err) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) } func TestDissociateRanE2TInstance_RoutingManager_400(t *testing.T) { rmClient, httpClientMock, config := initRoutingManagerClientTest(t) - data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)} + data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)} marshaled, _ := json.Marshal(data) body := bytes.NewBuffer(marshaled) url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix respBody := ioutil.NopCloser(bytes.NewBufferString("")) - httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body:respBody}, nil) + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil) err := rmClient.DissociateRanE2TInstance(E2TAddress, RanName) - assert.NotNil(t, err) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) +} + +func TestDissociateAllRans_Success(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.RoutingManagerE2TDataList{ + models.NewRoutingManagerE2TData(E2TAddress), + models.NewRoutingManagerE2TData(E2TAddress2), + } + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix + respBody := ioutil.NopCloser(bytes.NewBufferString("")) + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusCreated, Body: respBody}, nil) + err := rmClient.DissociateAllRans([]string{E2TAddress, E2TAddress2}) + assert.Nil(t, err) +} + +func TestDissociateAllRans_RoutingManagerError(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.RoutingManagerE2TDataList{ + models.NewRoutingManagerE2TData(E2TAddress), + models.NewRoutingManagerE2TData(E2TAddress2), + } + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{}, errors.New("error")) + err := rmClient.DissociateAllRans([]string{E2TAddress, E2TAddress2}) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) +} + +func TestDissociateAllRans_RoutingManager_400(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := models.RoutingManagerE2TDataList{ + models.NewRoutingManagerE2TData(E2TAddress), + models.NewRoutingManagerE2TData(E2TAddress2), + } + marshaled, _ := json.Marshal(data) + body := bytes.NewBuffer(marshaled) + url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix + respBody := ioutil.NopCloser(bytes.NewBufferString("")) + httpClientMock.On("Post", url, "application/json", body).Return(&http.Response{StatusCode: http.StatusBadRequest, Body: respBody}, nil) + err := rmClient.DissociateAllRans([]string{E2TAddress, E2TAddress2}) + assert.IsType(t, &e2managererrors.RoutingManagerError{}, err) } // TODO: extract to test_utils