github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/formats/common/spdxhelpers/download_location_test.go (about)

     1  package spdxhelpers
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/anchore/syft/syft/pkg"
     9  )
    10  
    11  func Test_DownloadLocation(t *testing.T) {
    12  	tests := []struct {
    13  		name     string
    14  		input    pkg.Package
    15  		expected string
    16  	}{
    17  		{
    18  			name:     "no metadata",
    19  			input:    pkg.Package{},
    20  			expected: NOASSERTION,
    21  		},
    22  		{
    23  			name: "from apk",
    24  			input: pkg.Package{
    25  				Metadata: pkg.ApkMetadata{
    26  					URL: "http://a-place.gov",
    27  				},
    28  			},
    29  			expected: "http://a-place.gov",
    30  		},
    31  		{
    32  			name: "from npm",
    33  			input: pkg.Package{
    34  				Metadata: pkg.NpmPackageJSONMetadata{
    35  					URL: "http://a-place.gov",
    36  				},
    37  			},
    38  			expected: "http://a-place.gov",
    39  		},
    40  		{
    41  			name: "empty",
    42  			input: pkg.Package{
    43  				Metadata: pkg.NpmPackageJSONMetadata{
    44  					URL: "",
    45  				},
    46  			},
    47  			expected: NONE,
    48  		},
    49  	}
    50  	for _, test := range tests {
    51  		t.Run(test.name, func(t *testing.T) {
    52  			assert.Equal(t, test.expected, DownloadLocation(test.input))
    53  		})
    54  	}
    55  }