github.com/SAP/jenkins-library@v1.362.0/cmd/apiProxyList_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package cmd
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/SAP/jenkins-library/pkg/apim"
    10  	apimhttp "github.com/SAP/jenkins-library/pkg/apim"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestRunApiProxyList(t *testing.T) {
    15  	t.Parallel()
    16  
    17  	t.Run("Get API Proxy List successfull test", func(t *testing.T) {
    18  		config := getDefaultOptionsForApiProxyList()
    19  		httpClientMock := &apimhttp.HttpMockAPIM{StatusCode: 200, ResponseBody: `{"some": "test"}`}
    20  		seOut := apiProxyListCommonPipelineEnvironment{}
    21  		apim := apim.Bundle{APIServiceKey: config.APIServiceKey, Client: httpClientMock}
    22  		// test
    23  		err := getApiProxyList(&config, apim, &seOut)
    24  
    25  		// assert
    26  		if assert.NoError(t, err) {
    27  			assert.EqualValues(t, seOut.custom.APIProxyList, "{\"some\": \"test\"}")
    28  			t.Run("check url", func(t *testing.T) {
    29  				assert.Equal(t, "/apiportal/api/1.0/Management.svc/APIProxies?filter=isCopy+eq+false&$orderby=name&$skip=1&$top=4", httpClientMock.URL)
    30  			})
    31  			t.Run("check method", func(t *testing.T) {
    32  				assert.Equal(t, "GET", httpClientMock.Method)
    33  			})
    34  		}
    35  	})
    36  
    37  	t.Run("Get API Proxy List failed test", func(t *testing.T) {
    38  		config := getDefaultOptionsForApiProxyList()
    39  		httpClientMock := &apimhttp.HttpMockAPIM{StatusCode: 400}
    40  		seOut := apiProxyListCommonPipelineEnvironment{}
    41  		apim := apim.Bundle{APIServiceKey: config.APIServiceKey, Client: httpClientMock}
    42  		// test
    43  		err := getApiProxyList(&config, apim, &seOut)
    44  		// assert
    45  		assert.EqualError(t, err, "HTTP GET request to /apiportal/api/1.0/Management.svc/APIProxies?filter=isCopy+eq+false&$orderby=name&$skip=1&$top=4 failed with error: : Bad Request")
    46  	})
    47  }
    48  
    49  func getDefaultOptionsForApiProxyList() apiProxyListOptions {
    50  	return apiProxyListOptions{
    51  		APIServiceKey: apimhttp.GetServiceKey(),
    52  		Top:           4,
    53  		Skip:          1,
    54  		Filter:        "isCopy eq false",
    55  		Orderby:       "name",
    56  	}
    57  }