github.com/xgoffin/jenkins-library@v1.154.0/cmd/integrationArtifactResource_test.go (about) 1 package cmd 2 3 import ( 4 "path/filepath" 5 "testing" 6 7 "github.com/SAP/jenkins-library/pkg/mock" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestRunIntegrationArtifactResource(t *testing.T) { 12 t.Parallel() 13 14 t.Run("Create Resource Test", func(t *testing.T) { 15 filesMock := mock.FilesMock{} 16 path := filepath.Join("tempDir", "demo.xsl") 17 filesMock.AddFile(path, []byte("dummy content")) 18 exists, err := filesMock.FileExists(path) 19 assert.NoError(t, err) 20 assert.True(t, exists) 21 22 apiServiceKey := `{ 23 "oauth": { 24 "url": "https://demo", 25 "clientid": "demouser", 26 "clientsecret": "******", 27 "tokenurl": "https://demo/oauth/token" 28 } 29 }` 30 config := integrationArtifactResourceOptions{ 31 APIServiceKey: apiServiceKey, 32 IntegrationFlowID: "flow1", 33 Operation: "create", 34 ResourcePath: path, 35 } 36 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactResourceCreate", ResponseBody: ``, TestType: "Positive"} 37 38 // test 39 err = runIntegrationArtifactResource(&config, nil, &filesMock, &httpClient) 40 41 // assert 42 assert.NoError(t, err) 43 }) 44 45 t.Run("Update Resource Test", func(t *testing.T) { 46 filesMock := mock.FilesMock{} 47 path := filepath.Join("tempDir", "demo.xsl") 48 filesMock.AddFile(path, []byte("dummy content")) 49 exists, err := filesMock.FileExists(path) 50 assert.NoError(t, err) 51 assert.True(t, exists) 52 53 apiServiceKey := `{ 54 "oauth": { 55 "url": "https://demo", 56 "clientid": "demouser", 57 "clientsecret": "******", 58 "tokenurl": "https://demo/oauth/token" 59 } 60 }` 61 config := integrationArtifactResourceOptions{ 62 APIServiceKey: apiServiceKey, 63 IntegrationFlowID: "flow1", 64 Operation: "update", 65 ResourcePath: path, 66 } 67 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactResourceUpdate", ResponseBody: ``, TestType: "Positive"} 68 69 // test 70 err = runIntegrationArtifactResource(&config, nil, &filesMock, &httpClient) 71 72 // assert 73 assert.NoError(t, err) 74 }) 75 76 t.Run("Delete Resource Test", func(t *testing.T) { 77 filesMock := mock.FilesMock{} 78 path := filepath.Join("tempDir", "demo.xsl") 79 filesMock.AddFile(path, []byte("dummy content")) 80 exists, err := filesMock.FileExists(path) 81 assert.NoError(t, err) 82 assert.True(t, exists) 83 84 apiServiceKey := `{ 85 "oauth": { 86 "url": "https://demo", 87 "clientid": "demouser", 88 "clientsecret": "******", 89 "tokenurl": "https://demo/oauth/token" 90 } 91 }` 92 config := integrationArtifactResourceOptions{ 93 APIServiceKey: apiServiceKey, 94 IntegrationFlowID: "flow1", 95 Operation: "delete", 96 ResourcePath: path, 97 } 98 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactResourceDelete", ResponseBody: ``, TestType: "Positive"} 99 100 // test 101 err = runIntegrationArtifactResource(&config, nil, &filesMock, &httpClient) 102 103 // assert 104 assert.NoError(t, err) 105 }) 106 107 t.Run("Create Resource Negative Test", func(t *testing.T) { 108 filesMock := mock.FilesMock{} 109 path := filepath.Join("tempDir", "demo.xsl") 110 filesMock.AddFile(path, []byte("dummy content")) 111 exists, err := filesMock.FileExists(path) 112 assert.NoError(t, err) 113 assert.True(t, exists) 114 115 apiServiceKey := `{ 116 "oauth": { 117 "url": "https://demo", 118 "clientid": "demouser", 119 "clientsecret": "******", 120 "tokenurl": "https://demo/oauth/token" 121 } 122 }` 123 config := integrationArtifactResourceOptions{ 124 APIServiceKey: apiServiceKey, 125 IntegrationFlowID: "flow1", 126 Operation: "create", 127 ResourcePath: path, 128 } 129 httpClient := httpMockCpis{CPIFunction: "IntegrationArtifactResourceCreate", ResponseBody: ``, TestType: "Negative"} 130 131 // test 132 err = runIntegrationArtifactResource(&config, nil, &filesMock, &httpClient) 133 134 // assert 135 assert.Error(t, err) 136 }) 137 }