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 }