From f6fa1a38abf7be7d4546b736e6db1ae7229e972f Mon Sep 17 00:00:00 2001 From: David Calavera Date: Fri, 24 Oct 2014 12:12:07 -0700 Subject: Add Remote#Ls. Allow filtering heads by name. --- remote_test.go | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'remote_test.go') diff --git a/remote_test.go b/remote_test.go index d1ad1e8..70e53ce 100644 --- a/remote_test.go +++ b/remote_test.go @@ -46,7 +46,6 @@ func TestListRemotes(t *testing.T) { compareStringList(t, expected, actual) } - func assertHostname(cert *Certificate, valid bool, hostname string, t *testing.T) int { if hostname != "github.com" { t.Fatal("Hostname does not match") @@ -65,7 +64,7 @@ func TestCertificateCheck(t *testing.T) { checkFatal(t, err) callbacks := RemoteCallbacks{ - CertificateCheckCallback: func (cert *Certificate, valid bool, hostname string) int { + CertificateCheckCallback: func(cert *Certificate, valid bool, hostname string) int { return assertHostname(cert, valid, hostname, t) }, } @@ -75,3 +74,43 @@ func TestCertificateCheck(t *testing.T) { err = remote.Fetch([]string{}, nil, "") checkFatal(t, err) } + +func TestRemoteLs(t *testing.T) { + repo := createTestRepo(t) + defer os.RemoveAll(repo.Workdir()) + defer repo.Free() + + remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository") + checkFatal(t, err) + + heads, err := remote.Ls() + checkFatal(t, err) + + if len(heads) == 0 { + t.Error("Expected remote heads") + } +} + +func TestRemoteLsFiltering(t *testing.T) { + repo := createTestRepo(t) + defer os.RemoveAll(repo.Workdir()) + defer repo.Free() + + remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository") + checkFatal(t, err) + + heads, err := remote.Ls("master") + checkFatal(t, err) + + if len(heads) != 1 { + t.Fatalf("Expected one head for master but I got %d", len(heads)) + } + + if heads[0].Id == nil { + t.Fatalf("Expected head to have an Id, but it's nil") + } + + if heads[0].Name == "" { + t.Fatalf("Expected head to have a name, but it's empty") + } +} -- cgit v1.2.3