github.com/xgoffin/jenkins-library@v1.154.0/cmd/integrationArtifactGetMplStatus_test.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "testing" 6 7 piperhttp "github.com/SAP/jenkins-library/pkg/http" 8 "github.com/SAP/jenkins-library/pkg/mock" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 type integrationArtifactGetMplStatusMockUtils struct { 13 *mock.ExecMockRunner 14 *mock.FilesMock 15 } 16 17 func newIntegrationArtifactGetMplStatusTestsUtils() integrationArtifactGetMplStatusMockUtils { 18 utils := integrationArtifactGetMplStatusMockUtils{ 19 ExecMockRunner: &mock.ExecMockRunner{}, 20 FilesMock: &mock.FilesMock{}, 21 } 22 return utils 23 } 24 25 func TestRunIntegrationArtifactGetMplStatus(t *testing.T) { 26 t.Parallel() 27 28 t.Run("Successfully Test of Get Integration Flow MPL Status", func(t *testing.T) { 29 apiServiceKey := `{ 30 "oauth": { 31 "url": "https://demo", 32 "clientid": "demouser", 33 "clientsecret": "******", 34 "tokenurl": "https://demo/oauth/token" 35 } 36 }` 37 config := integrationArtifactGetMplStatusOptions{ 38 APIServiceKey: apiServiceKey, 39 IntegrationFlowID: "flow1", 40 } 41 42 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactGetMplStatus", ResponseBody: ``, TestType: "Positive"} 43 seOut := integrationArtifactGetMplStatusCommonPipelineEnvironment{} 44 err := runIntegrationArtifactGetMplStatus(&config, nil, &httpClient, &seOut) 45 46 if assert.NoError(t, err) { 47 assert.EqualValues(t, seOut.custom.integrationFlowMplStatus, "COMPLETED") 48 49 t.Run("check url", func(t *testing.T) { 50 assert.Equal(t, "https://demo/api/v1/MessageProcessingLogs?$filter=IntegrationArtifact/Id+eq+'flow1'+and+Status+ne+'DISCARDED'&$orderby=LogEnd+desc&$top=1", httpClient.URL) 51 }) 52 53 t.Run("check method", func(t *testing.T) { 54 assert.Equal(t, "GET", httpClient.Method) 55 }) 56 } 57 58 }) 59 60 t.Run("Failed Test of Get Integration Flow MPL Status", func(t *testing.T) { 61 apiServiceKey := `{ 62 "oauth": { 63 "url": "https://demo", 64 "clientid": "demouser", 65 "clientsecret": "******", 66 "tokenurl": "https://demo/oauth/token" 67 } 68 }` 69 config := integrationArtifactGetMplStatusOptions{ 70 APIServiceKey: apiServiceKey, 71 IntegrationFlowID: "flow1", 72 } 73 74 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactGetMplStatus", ResponseBody: ``, TestType: "Negative"} 75 76 seOut := integrationArtifactGetMplStatusCommonPipelineEnvironment{} 77 err := runIntegrationArtifactGetMplStatus(&config, nil, &httpClient, &seOut) 78 assert.EqualValues(t, seOut.custom.integrationFlowMplStatus, "") 79 assert.EqualError(t, err, "HTTP GET request to https://demo/api/v1/MessageProcessingLogs?$filter=IntegrationArtifact/"+ 80 "Id+eq+'flow1'+and+Status+ne+'DISCARDED'&$orderby=LogEnd+desc&$top=1 failed with error: "+ 81 "Unable to get integration flow MPL status, Response Status code:400") 82 }) 83 84 t.Run(" Integration flow message processing get Error message test", func(t *testing.T) { 85 clientOptions := piperhttp.ClientOptions{} 86 clientOptions.Token = fmt.Sprintf("Bearer %s", "Demo") 87 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactGetMplStatusError", Options: clientOptions, ResponseBody: ``, TestType: "Negative"} 88 seOut := integrationArtifactGetMplStatusCommonPipelineEnvironment{} 89 message, err := getIntegrationArtifactMPLError(&seOut, "1000111", &httpClient, "demo") 90 assert.NoError(t, err) 91 assert.NotNil(t, message) 92 assert.EqualValues(t, seOut.custom.integrationFlowMplError, "{\"message\": \"java.lang.IllegalStateException: No credentials for 'smtp' found\"}") 93 }) 94 95 }