github.com/SAP/jenkins-library@v1.362.0/pkg/contrast/reporting_test.go (about)

     1  package contrast
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/SAP/jenkins-library/pkg/mock"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  type contrastExecuteScanMockUtils struct {
    11  	*mock.ExecMockRunner
    12  	*mock.FilesMock
    13  }
    14  
    15  func newContrastExecuteScanTestsUtils() contrastExecuteScanMockUtils {
    16  	return contrastExecuteScanMockUtils{
    17  		ExecMockRunner: &mock.ExecMockRunner{},
    18  		FilesMock:      &mock.FilesMock{},
    19  	}
    20  }
    21  
    22  func TestCreateToolRecordContrast(t *testing.T) {
    23  	modulePath := "./"
    24  
    25  	t.Run("Valid toolrun file", func(t *testing.T) {
    26  		appInfo := &ApplicationInfo{
    27  			Url:    "https://server.com/application",
    28  			Id:     "application-id",
    29  			Name:   "app name",
    30  			Server: "https://server.com",
    31  		}
    32  		toolRecord, err := createToolRecordContrast(newContrastExecuteScanTestsUtils(), appInfo, modulePath)
    33  		assert.NoError(t, err)
    34  		assert.Equal(t, "contrast", toolRecord.ToolName)
    35  		assert.Equal(t, appInfo.Server, toolRecord.ToolInstance)
    36  		assert.Equal(t, appInfo.Name, toolRecord.DisplayName)
    37  		assert.Equal(t, appInfo.Url, toolRecord.DisplayURL)
    38  		assert.Equal(t, 1, len(toolRecord.Keys))
    39  		assert.Equal(t, "application", toolRecord.Keys[0].Name)
    40  		assert.Equal(t, appInfo.Url, toolRecord.Keys[0].URL)
    41  		assert.Equal(t, appInfo.Id, toolRecord.Keys[0].Value)
    42  		assert.Equal(t, appInfo.Name, toolRecord.Keys[0].DisplayName)
    43  	})
    44  
    45  	t.Run("Empty server", func(t *testing.T) {
    46  		appInfo := &ApplicationInfo{
    47  			Url:  "https://server.com/application",
    48  			Id:   "application-id",
    49  			Name: "app name",
    50  		}
    51  		toolRecord, err := createToolRecordContrast(newContrastExecuteScanTestsUtils(), appInfo, modulePath)
    52  		assert.NoError(t, err)
    53  		assert.Equal(t, "contrast", toolRecord.ToolName)
    54  		assert.Equal(t, "", toolRecord.ToolInstance)
    55  		assert.Equal(t, appInfo.Name, toolRecord.DisplayName)
    56  		assert.Equal(t, appInfo.Url, toolRecord.DisplayURL)
    57  		assert.Equal(t, 1, len(toolRecord.Keys))
    58  		assert.Equal(t, "application", toolRecord.Keys[0].Name)
    59  		assert.Equal(t, appInfo.Url, toolRecord.Keys[0].URL)
    60  		assert.Equal(t, appInfo.Id, toolRecord.Keys[0].Value)
    61  		assert.Equal(t, appInfo.Name, toolRecord.Keys[0].DisplayName)
    62  	})
    63  
    64  	t.Run("Empty application id", func(t *testing.T) {
    65  		appInfo := &ApplicationInfo{
    66  			Url:    "https://server.com/application",
    67  			Name:   "app name",
    68  			Server: "https://server.com",
    69  		}
    70  		_, err := createToolRecordContrast(newContrastExecuteScanTestsUtils(), appInfo, modulePath)
    71  		assert.Error(t, err)
    72  	})
    73  
    74  	t.Run("Empty application name", func(t *testing.T) {
    75  		appInfo := &ApplicationInfo{
    76  			Url:    "https://contrastsecurity.com",
    77  			Id:     "application-id",
    78  			Server: "https://server.com",
    79  		}
    80  		toolRecord, err := createToolRecordContrast(newContrastExecuteScanTestsUtils(), appInfo, modulePath)
    81  		assert.NoError(t, err)
    82  		assert.Equal(t, "contrast", toolRecord.ToolName)
    83  		assert.Equal(t, appInfo.Server, toolRecord.ToolInstance)
    84  		assert.Equal(t, "", toolRecord.DisplayName)
    85  		assert.Equal(t, appInfo.Url, toolRecord.DisplayURL)
    86  		assert.Equal(t, 1, len(toolRecord.Keys))
    87  		assert.Equal(t, "application", toolRecord.Keys[0].Name)
    88  		assert.Equal(t, appInfo.Url, toolRecord.Keys[0].URL)
    89  		assert.Equal(t, appInfo.Id, toolRecord.Keys[0].Value)
    90  		assert.Equal(t, "", toolRecord.Keys[0].DisplayName)
    91  	})
    92  
    93  	t.Run("Empty application url", func(t *testing.T) {
    94  		appInfo := &ApplicationInfo{
    95  			Name:   "app name",
    96  			Id:     "application-id",
    97  			Server: "https://server.com",
    98  		}
    99  		toolRecord, err := createToolRecordContrast(newContrastExecuteScanTestsUtils(), appInfo, modulePath)
   100  		assert.NoError(t, err)
   101  		assert.Equal(t, "contrast", toolRecord.ToolName)
   102  		assert.Equal(t, appInfo.Server, toolRecord.ToolInstance)
   103  		assert.Equal(t, appInfo.Name, toolRecord.DisplayName)
   104  		assert.Equal(t, "", toolRecord.DisplayURL)
   105  		assert.Equal(t, 1, len(toolRecord.Keys))
   106  		assert.Equal(t, "application", toolRecord.Keys[0].Name)
   107  		assert.Equal(t, "", toolRecord.Keys[0].URL)
   108  		assert.Equal(t, appInfo.Id, toolRecord.Keys[0].Value)
   109  		assert.Equal(t, appInfo.Name, toolRecord.Keys[0].DisplayName)
   110  	})
   111  }