X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fclients%2Frouting_manager_client_test.go;fp=E2Manager%2Fclients%2Frouting_manager_client_test.go;h=2d02cfd88b38c7c3ead516be493ff5dc031ac44e;hb=3815ac0efa8b297be3e163f72279e18cc09a3514;hp=8ac2b3e4fce62e06e659fce7f286f65b5677d87b;hpb=21c4f80c47d4941eee3d7b233e0e065dbe098e2d;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/clients/routing_manager_client_test.go b/E2Manager/clients/routing_manager_client_test.go index 8ac2b3e..2d02cfd 100644 --- a/E2Manager/clients/routing_manager_client_test.go +++ b/E2Manager/clients/routing_manager_client_test.go @@ -17,6 +17,7 @@ // This source code is part of the near-RT RIC (RAN Intelligent Controller) // platform project (RICP). + package clients import ( @@ -34,8 +35,8 @@ import ( ) const E2TAddress = "10.0.2.15:38000" +const RanName = "test1" -// TODO: add response Body and dont check for nil in prod code. itll always be populated func initRoutingManagerClientTest(t *testing.T) (*RoutingManagerClient, *mocks.HttpClientMock, *configuration.Configuration) { logger := initLog(t) @@ -84,6 +85,82 @@ func TestAddE2TInstanceFailure(t *testing.T) { assert.NotNil(t, err) } +func TestAssociateRanToE2TInstance_Success(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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.StatusCreated, Body: respBody}, nil) + err := rmClient.AssociateRanToE2TInstance(E2TAddress, RanName) + assert.Nil(t, err) +} + +func TestAssociateRanToE2TInstance_RoutingManagerError(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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) +} + +func TestAssociateRanToE2TInstance_RoutingManager_400(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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) + err := rmClient.AssociateRanToE2TInstance(E2TAddress, RanName) + assert.NotNil(t, err) +} + +func TestDissociateRanE2TInstance_Success(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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.StatusCreated, Body: respBody}, nil) + err := rmClient.DissociateRanE2TInstance(E2TAddress, RanName) + assert.Nil(t, err) +} + +func TestDissociateRanE2TInstance_RoutingManagerError(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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) +} + +func TestDissociateRanE2TInstance_RoutingManager_400(t *testing.T) { + rmClient, httpClientMock, config := initRoutingManagerClientTest(t) + + data := 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) + err := rmClient.DissociateRanE2TInstance(E2TAddress, RanName) + assert.NotNil(t, err) +} + // TODO: extract to test_utils func initLog(t *testing.T) *logger.Logger { log, err := logger.InitLogger(logger.InfoLevel)