112 lines
2.5 KiB
Go
112 lines
2.5 KiB
Go
package git
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func createTestRepo(t *testing.T) *Repository {
|
|
// figure out where we can create the test repo
|
|
path, err := ioutil.TempDir("", "git2go")
|
|
checkFatal(t, err)
|
|
repo, err := InitRepository(path, false)
|
|
checkFatal(t, err)
|
|
|
|
tmpfile := "README"
|
|
err = ioutil.WriteFile(path+"/"+tmpfile, []byte("foo\n"), 0644)
|
|
|
|
checkFatal(t, err)
|
|
|
|
return repo
|
|
}
|
|
|
|
func createBareTestRepo(t *testing.T) *Repository {
|
|
// figure out where we can create the test repo
|
|
path, err := ioutil.TempDir("", "git2go")
|
|
checkFatal(t, err)
|
|
repo, err := InitRepository(path, true)
|
|
checkFatal(t, err)
|
|
|
|
return repo
|
|
}
|
|
|
|
func seedTestRepo(t *testing.T, repo *Repository) (*Oid, *Oid) {
|
|
loc, err := time.LoadLocation("Europe/Berlin")
|
|
checkFatal(t, err)
|
|
sig := &Signature{
|
|
Name: "Rand Om Hacker",
|
|
Email: "random@hacker.com",
|
|
When: time.Date(2013, 03, 06, 14, 30, 0, 0, loc),
|
|
}
|
|
|
|
idx, err := repo.Index()
|
|
checkFatal(t, err)
|
|
err = idx.AddByPath("README")
|
|
checkFatal(t, err)
|
|
treeId, err := idx.WriteTree()
|
|
checkFatal(t, err)
|
|
|
|
message := "This is a commit\n"
|
|
tree, err := repo.LookupTree(treeId)
|
|
checkFatal(t, err)
|
|
commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree)
|
|
checkFatal(t, err)
|
|
|
|
return commitId, treeId
|
|
}
|
|
|
|
func pathInRepo(repo *Repository, name string) string {
|
|
return path.Join(path.Dir(path.Dir(repo.Path())), name)
|
|
}
|
|
|
|
func updateReadme(t *testing.T, repo *Repository, content string) (*Oid, *Oid) {
|
|
loc, err := time.LoadLocation("Europe/Berlin")
|
|
checkFatal(t, err)
|
|
sig := &Signature{
|
|
Name: "Rand Om Hacker",
|
|
Email: "random@hacker.com",
|
|
When: time.Date(2013, 03, 06, 14, 30, 0, 0, loc),
|
|
}
|
|
|
|
tmpfile := "README"
|
|
err = ioutil.WriteFile(pathInRepo(repo, tmpfile), []byte(content), 0644)
|
|
checkFatal(t, err)
|
|
|
|
idx, err := repo.Index()
|
|
checkFatal(t, err)
|
|
err = idx.AddByPath("README")
|
|
checkFatal(t, err)
|
|
treeId, err := idx.WriteTree()
|
|
checkFatal(t, err)
|
|
|
|
currentBranch, err := repo.Head()
|
|
checkFatal(t, err)
|
|
currentTip, err := repo.LookupCommit(currentBranch.Target())
|
|
checkFatal(t, err)
|
|
|
|
message := "This is a commit\n"
|
|
tree, err := repo.LookupTree(treeId)
|
|
checkFatal(t, err)
|
|
commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree, currentTip)
|
|
checkFatal(t, err)
|
|
|
|
return commitId, treeId
|
|
}
|
|
|
|
func TestOidZero(t *testing.T) {
|
|
var zeroId Oid
|
|
|
|
if !zeroId.IsZero() {
|
|
t.Error("Zero Oid is not zero")
|
|
}
|
|
}
|
|
|
|
func TestEmptyOid(t *testing.T) {
|
|
_, err := NewOid("")
|
|
if err == nil || !IsErrorCode(err, ErrGeneric) {
|
|
t.Fatal("Should have returned invalid error")
|
|
}
|
|
}
|