summaryrefslogtreecommitdiff
path: root/tag_test.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2015-08-31 13:49:17 +0200
committerCarlos Martín Nieto <[email protected]>2015-08-31 13:55:46 +0200
commitf72db33baf9a47fc8b0d0ad8e83881eba235b532 (patch)
tree0869cd25b8ea03495f35bcb42eb908cc72afb6af /tag_test.go
parent157593f38da780c4f6cb6dc61275b9b36a3327bf (diff)
parentc6c2e9389fd2148d20f2e283000f5b4204dbcdc8 (diff)
Merge branch 'next'
Diffstat (limited to 'tag_test.go')
-rw-r--r--tag_test.go157
1 files changed, 156 insertions, 1 deletions
diff --git a/tag_test.go b/tag_test.go
index 74f9fec..2fdfe00 100644
--- a/tag_test.go
+++ b/tag_test.go
@@ -1,6 +1,7 @@
package git
import (
+ "errors"
"testing"
"time"
)
@@ -24,6 +25,146 @@ func TestCreateTag(t *testing.T) {
compareStrings(t, commitId.String(), tag.TargetId().String())
}
+func TestCreateTagLightweight(t *testing.T) {
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ commitID, _ := seedTestRepo(t, repo)
+
+ commit, err := repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ tagID, err := repo.Tags.CreateLightweight("v0.1.0", commit, false)
+ checkFatal(t, err)
+
+ _, err = repo.Tags.CreateLightweight("v0.1.0", commit, true)
+ checkFatal(t, err)
+
+ ref, err := repo.References.Lookup("refs/tags/v0.1.0")
+ checkFatal(t, err)
+
+ compareStrings(t, "refs/tags/v0.1.0", ref.Name())
+ compareStrings(t, "v0.1.0", ref.Shorthand())
+ compareStrings(t, tagID.String(), commitID.String())
+ compareStrings(t, commitID.String(), ref.Target().String())
+}
+
+func TestListTags(t *testing.T) {
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ commitID, _ := seedTestRepo(t, repo)
+
+ commit, err := repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ createTag(t, repo, commit, "v1.0.1", "Release v1.0.1")
+
+ commitID, _ = updateReadme(t, repo, "Release version 2")
+
+ commit, err = repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ createTag(t, repo, commit, "v2.0.0", "Release v2.0.0")
+
+ expected := []string{
+ "v1.0.1",
+ "v2.0.0",
+ }
+
+ actual, err := repo.Tags.List()
+ checkFatal(t, err)
+
+ compareStringList(t, expected, actual)
+}
+
+func TestListTagsWithMatch(t *testing.T) {
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ commitID, _ := seedTestRepo(t, repo)
+
+ commit, err := repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ createTag(t, repo, commit, "v1.0.1", "Release v1.0.1")
+
+ commitID, _ = updateReadme(t, repo, "Release version 2")
+
+ commit, err = repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ createTag(t, repo, commit, "v2.0.0", "Release v2.0.0")
+
+ expected := []string{
+ "v2.0.0",
+ }
+
+ actual, err := repo.Tags.ListWithMatch("v2*")
+ checkFatal(t, err)
+
+ compareStringList(t, expected, actual)
+
+ expected = []string{
+ "v1.0.1",
+ }
+
+ actual, err = repo.Tags.ListWithMatch("v1*")
+ checkFatal(t, err)
+
+ compareStringList(t, expected, actual)
+}
+
+func TestTagForeach(t *testing.T) {
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ commitID, _ := seedTestRepo(t, repo)
+
+ commit, err := repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ tag1 := createTag(t, repo, commit, "v1.0.1", "Release v1.0.1")
+
+ commitID, _ = updateReadme(t, repo, "Release version 2")
+
+ commit, err = repo.LookupCommit(commitID)
+ checkFatal(t, err)
+
+ tag2 := createTag(t, repo, commit, "v2.0.0", "Release v2.0.0")
+
+ expectedNames := []string{
+ "refs/tags/v1.0.1",
+ "refs/tags/v2.0.0",
+ }
+ actualNames := []string{}
+ expectedOids := []string{
+ tag1.String(),
+ tag2.String(),
+ }
+ actualOids := []string{}
+
+ err = repo.Tags.Foreach(func(name string, id *Oid) error {
+ actualNames = append(actualNames, name)
+ actualOids = append(actualOids, id.String())
+ return nil
+ })
+ checkFatal(t, err)
+
+ compareStringList(t, expectedNames, actualNames)
+ compareStringList(t, expectedOids, actualOids)
+
+ fakeErr := errors.New("fake error")
+
+ err = repo.Tags.Foreach(func(name string, id *Oid) error {
+ return fakeErr
+ })
+
+ if err != fakeErr {
+ t.Fatalf("Tags.Foreach() did not return the expected error, got %v", err)
+ }
+}
+
func compareStrings(t *testing.T, expected, value string) {
if value != expected {
t.Fatalf("expected '%v', actual '%v'", expected, value)
@@ -39,7 +180,21 @@ func createTestTag(t *testing.T, repo *Repository, commit *Commit) *Oid {
When: time.Date(2013, 03, 06, 14, 30, 0, 0, loc),
}
- tagId, err := repo.CreateTag("v0.0.0", commit, sig, "This is a tag")
+ tagId, err := repo.Tags.Create("v0.0.0", commit, sig, "This is a tag")
+ checkFatal(t, err)
+ return tagId
+}
+
+func createTag(t *testing.T, repo *Repository, commit *Commit, name, message string) *Oid {
+ loc, err := time.LoadLocation("Europe/Bucharest")
+ checkFatal(t, err)
+ sig := &Signature{
+ Name: "Rand Om Hacker",
+ Email: "[email protected]",
+ When: time.Date(2013, 03, 06, 14, 30, 0, 0, loc),
+ }
+
+ tagId, err := repo.Tags.Create(name, commit, sig, message)
checkFatal(t, err)
return tagId
}