|  | package dependency | 
|  |  | 
|  | import ( | 
|  | "os" | 
|  | "path/filepath" | 
|  | "strings" | 
|  | "testing" | 
|  |  | 
|  | "github.com/Masterminds/glide/cfg" | 
|  | ) | 
|  |  | 
|  | func TestResolveLocalShallow(t *testing.T) { | 
|  | r, err := NewResolver("../") | 
|  | if err != nil { | 
|  | t.Fatal(err) | 
|  | } | 
|  |  | 
|  | l, err := r.ResolveLocal(false) | 
|  | if err != nil { | 
|  | t.Fatalf("Failed to resolve: %s", err) | 
|  | } | 
|  |  | 
|  | expect := []string{ | 
|  | "github.com/Masterminds/semver", | 
|  | "github.com/Masterminds/vcs", | 
|  | "gopkg.in/yaml.v2", | 
|  | "github.com/codegangsta/cli", | 
|  | } | 
|  |  | 
|  | for _, p := range expect { | 
|  | found := false | 
|  | for _, li := range l { | 
|  | if strings.HasSuffix(li, p) { | 
|  | found = true | 
|  | break | 
|  | } | 
|  | } | 
|  | if !found { | 
|  | t.Errorf("Could not find %s in resolved list.", p) | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | func TestResolveLocalDeep(t *testing.T) { | 
|  | r, err := NewResolver("../") | 
|  | if err != nil { | 
|  | t.Fatal(err) | 
|  | } | 
|  |  | 
|  | l, err := r.ResolveLocal(true) | 
|  | if err != nil { | 
|  | t.Fatalf("Failed to resolve: %s", err) | 
|  | } | 
|  |  | 
|  | if len(l) < 4 { | 
|  | t.Errorf("Expected at least 4 deps, got %d", len(l)) | 
|  | } | 
|  | } | 
|  |  | 
|  | func TestResolve(t *testing.T) { | 
|  | r, err := NewResolver("../") | 
|  | if err != nil { | 
|  | t.Fatal(err) | 
|  | } | 
|  |  | 
|  | base := filepath.Join(os.Getenv("GOPATH"), "src/github.com/Masterminds/glide/vendor") | 
|  | l, err := r.Resolve("github.com/codegangsta/cli", base) | 
|  | if err != nil { | 
|  | t.Fatalf("Failed to resolve: %s", err) | 
|  | } | 
|  |  | 
|  | if len(l) != 1 { | 
|  | t.Errorf("Expected 1 dep, got %d: %s", len(l), l[0]) | 
|  | } | 
|  |  | 
|  | if !strings.HasSuffix("github.com/codegangsta/cli", l[0]) { | 
|  | t.Errorf("Unexpected package name: %s", l[0]) | 
|  | } | 
|  | } | 
|  |  | 
|  | func TestResolveAll(t *testing.T) { | 
|  | // These are build dependencies of Glide, so we know they are here. | 
|  | deps := []*cfg.Dependency{ | 
|  | {Name: "github.com/codegangsta/cli"}, | 
|  | {Name: "github.com/Masterminds/semver"}, | 
|  | {Name: "github.com/Masterminds/vcs"}, | 
|  | {Name: "gopkg.in/yaml.v2"}, | 
|  | } | 
|  |  | 
|  | r, err := NewResolver("../") | 
|  | if err != nil { | 
|  | t.Fatalf("No new resolver: %s", err) | 
|  | } | 
|  | l, err := r.ResolveAll(deps) | 
|  | if err != nil { | 
|  | t.Fatalf("Failed to resolve: %s", err) | 
|  | } | 
|  |  | 
|  | if len(l) < len(deps) { | 
|  | t.Errorf("Expected at least %d deps, got %d", len(deps), len(l)) | 
|  | } | 
|  | } |