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  }