github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/buildtools/cargo/cargo_test.go (about) 1 package cargo_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/fossas/fossa-cli/buildtools/cargo" 9 "github.com/fossas/fossa-cli/testing/helpers" 10 ) 11 12 // Test that we can analyze a Cargo.lock and that direct deps are found in Cargo.toml files. 13 func TestLockfileWithManifest(t *testing.T) { 14 graph, err := cargo.LockfileDependencies("Cargo.lock", "testdata") 15 assert.NoError(t, err) 16 assert.Len(t, graph.Direct, 2) 17 assert.Len(t, graph.Transitive, 5) 18 19 helpers.AssertPackageImport(t, graph.Direct, "one", "1.0.0") 20 helpers.AssertPackageImport(t, graph.Direct, "two", "2.0.0") 21 22 one := helpers.PackageInTransitiveGraph(graph.Transitive, "one", "1.0.0") 23 assert.Len(t, one.Imports, 1) 24 helpers.AssertPackageImport(t, one.Imports, "three", "3.0.0") 25 26 two := helpers.PackageInTransitiveGraph(graph.Transitive, "two", "2.0.0") 27 assert.Len(t, two.Imports, 2) 28 helpers.AssertPackageImport(t, two.Imports, "three", "3.0.0") 29 helpers.AssertPackageImport(t, two.Imports, "five", "5.0.0") 30 31 three := helpers.PackageInTransitiveGraph(graph.Transitive, "three", "3.0.0") 32 assert.Len(t, three.Imports, 1) 33 helpers.AssertPackageImport(t, three.Imports, "four", "4.0.0") 34 35 four := helpers.PackageInTransitiveGraph(graph.Transitive, "four", "4.0.0") 36 assert.Len(t, four.Imports, 0) 37 38 five := helpers.PackageInTransitiveGraph(graph.Transitive, "five", "5.0.0") 39 assert.Len(t, five.Imports, 0) 40 } 41 42 func TestLockfileNoManifest(t *testing.T) { 43 graph, err := cargo.LockfileDependencies("Cargo.lock", "testdata/no-manifests") 44 assert.NoError(t, err) 45 assert.Len(t, graph.Direct, 0) 46 assert.Len(t, graph.Transitive, 1) 47 48 one := helpers.PackageInTransitiveGraph(graph.Transitive, "one", "1.0.0") 49 assert.Len(t, one.Imports, 0) 50 } 51 52 func TestMissingManifest(t *testing.T) { 53 graph, err := cargo.LockfileDependencies("Cargo.lock", "testdata/missing-manifest") 54 assert.NoError(t, err) 55 assert.Len(t, graph.Direct, 0) 56 assert.Len(t, graph.Transitive, 1) 57 58 one := helpers.PackageInTransitiveGraph(graph.Transitive, "one", "1.0.0") 59 assert.Len(t, one.Imports, 0) 60 }