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