@@ -2,7 +2,9 @@ package conan
22
33import (
44 "encoding/json"
5+ "github.com/stretchr/testify/require"
56 "os"
7+ "os/exec"
68 "path/filepath"
79 "testing"
810
@@ -41,17 +43,57 @@ func TestParseConanDependencyTree(t *testing.T) {
4143 }
4244}
4345
46+ // TODO eran add a testcase with a provided descriptor name
4447func TestBuildDependencyTree (t * testing.T ) {
45- dir , cleanUp := sca .CreateTestWorkspace (t , filepath .Join ("projects" , "package-managers" , "conan" ))
46- defer cleanUp ()
47- params := & utils.AuditBasicParams {}
48- params .SetConanProfile (filepath .Join (dir , "profile" ))
49- graph , uniqueDeps , err := BuildDependencyTree (params )
50- assert .NoError (t , err )
51- if ! tests .CompareTree (expectedResult , graph [0 ]) {
52- t .Errorf ("expected %+v, got: %+v" , expectedResult .Nodes , graph )
48+ testcases := []struct {
49+ name string
50+ descriptorName string
51+ }{
52+ {
53+ name : "default descriptor file" ,
54+ },
55+ {
56+ name : "custom descriptor file" ,
57+ descriptorName : "conanfile-system.txt" ,
58+ },
5359 }
54- assert .ElementsMatch (t , uniqueDeps , expectedUniqueDeps , "First is actual, Second is Expected" )
60+ for _ , testcase := range testcases {
61+ t .Run (testcase .name , func (t * testing.T ) {
62+ dir , cleanUp := sca .CreateTestWorkspace (t , filepath .Join ("projects" , "package-managers" , "conan" ))
63+ defer cleanUp ()
64+ params := & utils.AuditBasicParams {}
65+ if testcase .descriptorName != "" {
66+ // changing the name of the descriptor to verify the work with a non-default descriptor name
67+ changeNameCmd := exec .Command ("mv" , "conanfile.txt" , testcase .descriptorName )
68+ changeNameCmd .Dir = dir
69+ _ , err := changeNameCmd .CombinedOutput ()
70+ require .NoError (t , err )
71+ require .FileExists (t , filepath .Join (dir , testcase .descriptorName ))
72+ params .SetPipRequirementsFile (testcase .descriptorName )
73+ }
74+ params .SetConanProfile (filepath .Join (dir , "profile" ))
75+ graph , uniqueDeps , err := BuildDependencyTree (params )
76+ assert .NoError (t , err )
77+ if ! tests .CompareTree (expectedResult , graph [0 ]) {
78+ t .Errorf ("expected %+v, got: %+v" , expectedResult .Nodes , graph )
79+ }
80+ assert .ElementsMatch (t , uniqueDeps , expectedUniqueDeps , "First is actual, Second is Expected" )
81+ })
82+ }
83+
84+ /*
85+ dir, cleanUp := sca.CreateTestWorkspace(t, filepath.Join("projects", "package-managers", "conan"))
86+ defer cleanUp()
87+ params := &utils.AuditBasicParams{}
88+ params.SetConanProfile(filepath.Join(dir, "profile"))
89+ graph, uniqueDeps, err := BuildDependencyTree(params)
90+ assert.NoError(t, err)
91+ if !tests.CompareTree(expectedResult, graph[0]) {
92+ t.Errorf("expected %+v, got: %+v", expectedResult.Nodes, graph)
93+ }
94+ assert.ElementsMatch(t, uniqueDeps, expectedUniqueDeps, "First is actual, Second is Expected")
95+
96+ */
5597}
5698
5799func TestCalculateUniqueDeps (t * testing.T ) {
0 commit comments