gogit_testing.go

 1package repository
 2
 3import (
 4	"io/ioutil"
 5	"log"
 6)
 7
 8// This is intended for testing only
 9
10func CreateGoGitTestRepo(bare bool) TestedRepo {
11	dir, err := ioutil.TempDir("", "")
12	if err != nil {
13		log.Fatal(err)
14	}
15
16	var creator func(string) (*GoGitRepo, error)
17
18	if bare {
19		creator = InitBareGoGitRepo
20	} else {
21		creator = InitGoGitRepo
22	}
23
24	repo, err := creator(dir)
25	if err != nil {
26		log.Fatal(err)
27	}
28
29	config := repo.LocalConfig()
30	if err := config.StoreString("user.name", "testuser"); err != nil {
31		log.Fatal("failed to set user.name for test repository: ", err)
32	}
33	if err := config.StoreString("user.email", "testuser@example.com"); err != nil {
34		log.Fatal("failed to set user.email for test repository: ", err)
35	}
36
37	return repo
38}
39
40func SetupGoGitReposAndRemote() (repoA, repoB, remote TestedRepo) {
41	repoA = CreateGoGitTestRepo(false)
42	repoB = CreateGoGitTestRepo(false)
43	remote = CreateGoGitTestRepo(true)
44
45	err := repoA.AddRemote("origin", remote.GetLocalRemote())
46	if err != nil {
47		log.Fatal(err)
48	}
49
50	err = repoB.AddRemote("origin", remote.GetLocalRemote())
51	if err != nil {
52		log.Fatal(err)
53	}
54
55	return repoA, repoB, remote
56}