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  }