github.com/anchore/syft@v1.38.2/syft/format/purls/encoder_test.go (about) 1 package purls 2 3 import ( 4 "flag" 5 "testing" 6 7 "github.com/anchore/syft/syft/format/internal/testutil" 8 "github.com/anchore/syft/syft/pkg" 9 "github.com/anchore/syft/syft/sbom" 10 ) 11 12 var updateSnapshot = flag.Bool("update-purls", false, "update the *.golden files for purls format") 13 14 func Test_Encoder(t *testing.T) { 15 pkgs := []pkg.Package{ 16 { 17 Name: "npmtest", 18 Version: "1.5.1", 19 Type: pkg.NpmPkg, 20 Language: pkg.JavaScript, 21 PURL: "pkg:npm/npmtest@1.5.1", 22 }, 23 { 24 Name: "npmtest2", 25 Version: "1.5.1", 26 Type: pkg.NpmPkg, 27 Language: pkg.JavaScript, 28 PURL: "pkg:npm/npmtest@1.5.1", // duplicate should not be included 29 }, 30 { 31 Name: "npmtest", 32 Version: "3.1.1", 33 Type: pkg.NpmPkg, 34 Language: pkg.JavaScript, 35 PURL: "http://npm/npmtest@3.1.1", // invalid PURL should not be included 36 }, 37 { 38 Name: "javatest", 39 Version: "0.30.1", 40 Type: pkg.JavaPkg, 41 Language: pkg.Java, 42 PURL: "pkg:maven/org.apache/javatest@0.30.1", 43 }, 44 { 45 Type: pkg.UnknownPkg, 46 PURL: "pkg:generic/generic@1.2.3", 47 }, 48 } 49 testutil.AssertEncoderAgainstGoldenSnapshot(t, 50 testutil.EncoderSnapshotTestConfig{ 51 Subject: sbom.SBOM{Artifacts: sbom.Artifacts{ 52 Packages: pkg.NewCollection(pkgs...), 53 }}, 54 Format: NewFormatEncoder(), 55 UpdateSnapshot: *updateSnapshot, 56 PersistRedactionsInSnapshot: true, 57 IsJSON: false, 58 }, 59 ) 60 }