github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/cataloger/php/parse_composer_lock_test.go (about) 1 package php 2 3 import ( 4 "testing" 5 6 "github.com/anchore/syft/syft/artifact" 7 "github.com/anchore/syft/syft/file" 8 "github.com/anchore/syft/syft/pkg" 9 "github.com/anchore/syft/syft/pkg/cataloger/internal/pkgtest" 10 ) 11 12 func TestParseComposerFileLock(t *testing.T) { 13 var expectedRelationships []artifact.Relationship 14 fixture := "test-fixtures/composer.lock" 15 locations := file.NewLocationSet(file.NewLocation(fixture)) 16 expectedPkgs := []pkg.Package{ 17 { 18 Name: "adoy/fastcgi-client", 19 Version: "1.0.2", 20 PURL: "pkg:composer/adoy/fastcgi-client@1.0.2", 21 Locations: locations, 22 Licenses: pkg.NewLicenseSet( 23 pkg.NewLicenseFromLocations("MIT", file.NewLocation(fixture)), 24 ), 25 Language: pkg.PHP, 26 Type: pkg.PhpComposerPkg, 27 MetadataType: pkg.PhpComposerJSONMetadataType, 28 Metadata: pkg.PhpComposerJSONMetadata{ 29 Name: "adoy/fastcgi-client", 30 Version: "1.0.2", 31 Source: pkg.PhpComposerExternalReference{ 32 Type: "git", 33 URL: "https://github.com/adoy/PHP-FastCGI-Client.git", 34 Reference: "6d9a552f0206a1db7feb442824540aa6c55e5b27", 35 }, 36 Dist: pkg.PhpComposerExternalReference{ 37 Type: "zip", 38 URL: "https://api.github.com/repos/adoy/PHP-FastCGI-Client/zipball/6d9a552f0206a1db7feb442824540aa6c55e5b27", 39 Reference: "6d9a552f0206a1db7feb442824540aa6c55e5b27", 40 }, 41 Type: "library", 42 NotificationURL: "https://packagist.org/downloads/", 43 Authors: []pkg.PhpComposerAuthors{ 44 { 45 Name: "Pierrick Charron", 46 Email: "pierrick@adoy.net", 47 }, 48 }, 49 Description: "Lightweight, single file FastCGI client for PHP.", 50 Keywords: []string{ 51 "fastcgi", 52 "fcgi", 53 }, 54 Time: "2019-12-11T13:49:21+00:00", 55 }, 56 }, 57 { 58 Name: "alcaeus/mongo-php-adapter", 59 Version: "1.1.11", 60 Locations: locations, 61 PURL: "pkg:composer/alcaeus/mongo-php-adapter@1.1.11", 62 Language: pkg.PHP, 63 Licenses: pkg.NewLicenseSet( 64 pkg.NewLicenseFromLocations("MIT", file.NewLocation(fixture)), 65 ), 66 Type: pkg.PhpComposerPkg, 67 MetadataType: pkg.PhpComposerJSONMetadataType, 68 Metadata: pkg.PhpComposerJSONMetadata{ 69 Name: "alcaeus/mongo-php-adapter", 70 Version: "1.1.11", 71 Source: pkg.PhpComposerExternalReference{ 72 Type: "git", 73 URL: "https://github.com/alcaeus/mongo-php-adapter.git", 74 Reference: "43b6add94c8b4cb9890d662cba4c0defde733dcf", 75 }, 76 Dist: pkg.PhpComposerExternalReference{ 77 Type: "zip", 78 URL: "https://api.github.com/repos/alcaeus/mongo-php-adapter/zipball/43b6add94c8b4cb9890d662cba4c0defde733dcf", 79 Reference: "43b6add94c8b4cb9890d662cba4c0defde733dcf", 80 }, 81 Require: map[string]string{ 82 "ext-ctype": "*", 83 "ext-hash": "*", 84 "ext-mongodb": "^1.2.0", 85 "mongodb/mongodb": "^1.0.1", 86 "php": "^5.6 || ^7.0", 87 }, 88 Provide: map[string]string{ 89 "ext-mongo": "1.6.14", 90 }, 91 RequireDev: map[string]string{ 92 "phpunit/phpunit": "^5.7.27 || ^6.0 || ^7.0", 93 "squizlabs/php_codesniffer": "^3.2", 94 }, 95 Type: "library", 96 NotificationURL: "https://packagist.org/downloads/", 97 Authors: []pkg.PhpComposerAuthors{ 98 { 99 Name: "alcaeus", 100 Email: "alcaeus@alcaeus.org", 101 }, 102 { 103 Name: "Olivier Lechevalier", 104 Email: "olivier.lechevalier@gmail.com", 105 }, 106 }, 107 Description: "Adapter to provide ext-mongo interface on top of mongo-php-libary", 108 Keywords: []string{ 109 "database", 110 "mongodb", 111 }, 112 Time: "2019-11-11T20:47:32+00:00", 113 }, 114 }, 115 } 116 pkgtest.TestFileParser(t, fixture, parseComposerLock, expectedPkgs, expectedRelationships) 117 }