github.com/jaylevin/jenkins-library@v1.230.4/cmd/integrationArtifactGetServiceEndpoint_test.go (about)

     1  package cmd
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/SAP/jenkins-library/pkg/mock"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  type integrationArtifactGetServiceEndpointMockUtils struct {
    11  	*mock.ExecMockRunner
    12  	*mock.FilesMock
    13  }
    14  
    15  func newIntegrationArtifactGetServiceEndpointTestsUtils() integrationArtifactGetServiceEndpointMockUtils {
    16  	utils := integrationArtifactGetServiceEndpointMockUtils{
    17  		ExecMockRunner: &mock.ExecMockRunner{},
    18  		FilesMock:      &mock.FilesMock{},
    19  	}
    20  	return utils
    21  }
    22  
    23  func TestRunIntegrationArtifactGetServiceEndpoint(t *testing.T) {
    24  	t.Parallel()
    25  
    26  	t.Run("Successfully Test of Get Integration Flow Service Endpoint", func(t *testing.T) {
    27  		apiServiceKey := `{
    28  			"oauth": {
    29  				"url": "https://demo",
    30  				"clientid": "demouser",
    31  				"clientsecret": "******",
    32  				"tokenurl": "https://demo/oauth/token"
    33  			}
    34  		}`
    35  		config := integrationArtifactGetServiceEndpointOptions{
    36  			APIServiceKey:     apiServiceKey,
    37  			IntegrationFlowID: "CPI_IFlow_Call_using_Cert",
    38  		}
    39  
    40  		httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactGetServiceEndpoint", ResponseBody: ``, TestType: "PositiveAndGetetIntegrationArtifactGetServiceResBody"}
    41  		seOut := integrationArtifactGetServiceEndpointCommonPipelineEnvironment{}
    42  		err := runIntegrationArtifactGetServiceEndpoint(&config, nil, &httpClient, &seOut)
    43  		assert.EqualValues(t, seOut.custom.integrationFlowServiceEndpoint, "https://demo.cfapps.sap.hana.ondemand.com/http/testwithcert")
    44  
    45  		if assert.NoError(t, err) {
    46  
    47  			t.Run("check url", func(t *testing.T) {
    48  				assert.Equal(t, "https://demo/api/v1/ServiceEndpoints?$expand=EntryPoints", httpClient.URL)
    49  			})
    50  
    51  			t.Run("check method", func(t *testing.T) {
    52  				assert.Equal(t, "GET", httpClient.Method)
    53  			})
    54  		}
    55  
    56  	})
    57  
    58  	t.Run("Failed Test of Get Integration Flow MPL Status", func(t *testing.T) {
    59  		apiServiceKey := `{
    60  			"oauth": {
    61  				"url": "https://demo",
    62  				"clientid": "demouser",
    63  				"clientsecret": "******",
    64  				"tokenurl": "https://demo/oauth/token"
    65  			}
    66  		}`
    67  		config := integrationArtifactGetServiceEndpointOptions{
    68  			APIServiceKey:     apiServiceKey,
    69  			IntegrationFlowID: "CPI_IFlow_Call_using_Cert",
    70  		}
    71  
    72  		httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactGetServiceEndpoint", ResponseBody: ``, TestType: "Negative"}
    73  
    74  		seOut := integrationArtifactGetServiceEndpointCommonPipelineEnvironment{}
    75  		err := runIntegrationArtifactGetServiceEndpoint(&config, nil, &httpClient, &seOut)
    76  		assert.EqualValues(t, seOut.custom.integrationFlowServiceEndpoint, "")
    77  		assert.EqualError(t, err, "HTTP GET request to https://demo/api/v1/ServiceEndpoints?$expand=EntryPoints failed with error: Unable to get integration flow service endpoint, Response Status code:400")
    78  	})
    79  
    80  }