1package execenv
2
3import (
4 "bytes"
5 "fmt"
6 "testing"
7
8 "github.com/MichaelMure/git-bug/cache"
9 "github.com/MichaelMure/git-bug/repository"
10 "github.com/stretchr/testify/require"
11)
12
13type TestOut struct {
14 *bytes.Buffer
15}
16
17func (te *TestOut) Printf(format string, a ...interface{}) {
18 _, _ = fmt.Fprintf(te.Buffer, format, a...)
19}
20
21func (te *TestOut) Print(a ...interface{}) {
22 _, _ = fmt.Fprint(te.Buffer, a...)
23}
24
25func (te *TestOut) Println(a ...interface{}) {
26 _, _ = fmt.Fprintln(te.Buffer, a...)
27}
28
29func NewTestEnv(t *testing.T) *Env {
30 t.Helper()
31
32 repo := repository.CreateGoGitTestRepo(t, false)
33
34 buf := new(bytes.Buffer)
35
36 backend, err := cache.NewRepoCache(repo)
37 require.NoError(t, err)
38 t.Cleanup(func() {
39 backend.Close()
40 })
41
42 return &Env{
43 Repo: repo,
44 Backend: backend,
45 Out: &TestOut{buf},
46 Err: &TestOut{buf},
47 }
48}