github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/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/anchore/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  					MetadataType: pkg.JavaMetadataType,
    25  					Metadata: pkg.JavaMetadata{
    26  						PomProject: &pkg.PomProject{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  					MetadataType: pkg.JavaMetadataType,
    35  					Metadata: pkg.JavaMetadata{
    36  						PomProject: &pkg.PomProject{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  					MetadataType: pkg.JavaMetadataType,
    45  					Metadata: pkg.JavaMetadata{
    46  						PomProject: &pkg.PomProject{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  					MetadataType: pkg.JavaMetadataType,
    55  					Metadata: pkg.JavaMetadata{
    56  						PomProject: &pkg.PomProject{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  }