github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/buildtools/dotnet/project_json_test.go (about) 1 package dotnet_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/fossas/fossa-cli/buildtools/dotnet" 10 "github.com/fossas/fossa-cli/pkg" 11 ) 12 13 func TestProjectJSON(t *testing.T) { 14 testGraph, err := dotnet.ProjectGraph("testdata/project.json") 15 assert.NoError(t, err) 16 17 assert.Len(t, testGraph.Direct, 3) 18 assertImport(t, testGraph.Direct, "one", "1.0.0") 19 assertImport(t, testGraph.Direct, "two", "2.0.0") 20 assertImport(t, testGraph.Direct, "three", "3.0.0") 21 22 assert.Len(t, testGraph.Transitive, 3) 23 depOne := findPackage(testGraph.Transitive, "one", "1.0.0") 24 assert.NotEmpty(t, depOne) 25 assert.Empty(t, depOne.Imports) 26 depTwo := findPackage(testGraph.Transitive, "two", "2.0.0") 27 assert.NotEmpty(t, depTwo) 28 assert.Empty(t, depTwo.Imports) 29 depThree := findPackage(testGraph.Transitive, "three", "3.0.0") 30 assert.NotEmpty(t, depThree) 31 assert.Empty(t, depThree.Imports) 32 } 33 34 func findPackage(packages map[pkg.ID]pkg.Package, name, revision string) pkg.Package { 35 for id := range packages { 36 if id.Name == name && id.Revision == revision { 37 return packages[id] 38 } 39 } 40 return pkg.Package{} 41 } 42 43 func assertImport(t *testing.T, dependencies []pkg.Import, name, version string) { 44 for _, dependency := range dependencies { 45 if dependency.Resolved.Name == name && dependency.Resolved.Revision == version { 46 return 47 } 48 } 49 assert.Fail(t, fmt.Sprintf("Imports list: %+v\nDoes not contain\nDependency: %s", dependencies, name)) 50 }