github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/pkg/cataloger/java/parse_gradle_lockfile_test.go (about)

     1  package java
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/anchore/syft/syft/file"
     7  	"github.com/anchore/syft/syft/pkg"
     8  	"github.com/lineaje-labs/syft/syft/pkg/cataloger/internal/pkgtest"
     9  )
    10  
    11  func Test_parserGradleLockfile(t *testing.T) {
    12  	tests := []struct {
    13  		input    string
    14  		expected []pkg.Package
    15  	}{
    16  		{
    17  			input: "test-fixtures/gradle/gradle.lockfile",
    18  			expected: []pkg.Package{
    19  				{
    20  					Name:     "commons-text",
    21  					Version:  "1.8",
    22  					Language: pkg.Java,
    23  					Type:     pkg.JavaPkg,
    24  					PURL:     "pkg:maven/org.apache.commons/commons-text@1.8",
    25  					Metadata: pkg.JavaArchive{
    26  						PomProject: &pkg.JavaPomProject{GroupID: "org.apache.commons", ArtifactID: "commons-text", Version: "1.8", Name: "commons-text"},
    27  					},
    28  				},
    29  				{
    30  					Name:     "hamcrest-core",
    31  					Version:  "1.3",
    32  					Language: pkg.Java,
    33  					Type:     pkg.JavaPkg,
    34  					PURL:     "pkg:maven/org.hamcrest/hamcrest-core@1.3",
    35  					Metadata: pkg.JavaArchive{
    36  						PomProject: &pkg.JavaPomProject{GroupID: "org.hamcrest", ArtifactID: "hamcrest-core", Version: "1.3", Name: "hamcrest-core"},
    37  					},
    38  				},
    39  				{
    40  					Name:     "joda-time",
    41  					Version:  "2.2",
    42  					Language: pkg.Java,
    43  					Type:     pkg.JavaPkg,
    44  					PURL:     "pkg:maven/joda-time/joda-time@2.2",
    45  					Metadata: pkg.JavaArchive{
    46  						PomProject: &pkg.JavaPomProject{GroupID: "joda-time", ArtifactID: "joda-time", Version: "2.2", Name: "joda-time"},
    47  					},
    48  				},
    49  				{
    50  					Name:     "junit",
    51  					Version:  "4.12",
    52  					Language: pkg.Java,
    53  					Type:     pkg.JavaPkg,
    54  					PURL:     "pkg:maven/junit/junit@4.12",
    55  					Metadata: pkg.JavaArchive{
    56  						PomProject: &pkg.JavaPomProject{GroupID: "junit", ArtifactID: "junit", Version: "4.12", Name: "junit"},
    57  					},
    58  				},
    59  			},
    60  		},
    61  	}
    62  
    63  	for _, test := range tests {
    64  		t.Run(test.input, func(t *testing.T) {
    65  			for i := range test.expected {
    66  				test.expected[i].Locations.Add(file.NewLocation(test.input))
    67  			}
    68  			pkgtest.TestFileParser(t, test.input, parseGradleLockfile, test.expected, nil)
    69  		})
    70  	}
    71  }