1
0
mirror of https://github.com/openshift/source-to-image.git synced 2026-02-06 15:45:00 +01:00
Files
source-to-image/pkg/test/git.go
2017-07-13 09:09:56 +01:00

71 lines
1.8 KiB
Go

package test
import (
"os"
"github.com/openshift/source-to-image/pkg/scm/git"
)
// FakeGit provides a fake Git
type FakeGit struct {
CloneSource *git.URL
CloneTarget string
CloneError error
CheckoutRepo string
CheckoutRef string
CheckoutError error
SubmoduleInitRepo string
SubmoduleInitError error
SubmoduleUpdateRepo string
SubmoduleUpdateInit bool
SubmoduleUpdateRecursive bool
SubmoduleUpdateError error
}
// Clone clones the fake source Git repository to target directory
func (f *FakeGit) Clone(source *git.URL, target string, c git.CloneConfig) error {
f.CloneSource = source
f.CloneTarget = target
return f.CloneError
}
// Checkout checkouts a ref in the fake Git repository
func (f *FakeGit) Checkout(repo, ref string) error {
f.CheckoutRepo = repo
f.CheckoutRef = ref
return f.CheckoutError
}
// SubmoduleInit initializes / clones submodules.
func (f *FakeGit) SubmoduleInit(repo string) error {
f.SubmoduleInitRepo = repo
return f.SubmoduleInitError
}
// SubmoduleUpdate checks out submodules to their correct version
func (f *FakeGit) SubmoduleUpdate(repo string, init, recursive bool) error {
f.SubmoduleUpdateRepo = repo
f.SubmoduleUpdateRecursive = recursive
f.SubmoduleUpdateInit = init
return f.SubmoduleUpdateError
}
// LsTree returns a slice of os.FileInfo objects populated with the paths and
// file modes of files known to Git. This is used on Windows systems where the
// executable mode metadata is lost on git checkout.
func (f *FakeGit) LsTree(repo, ref string, recursive bool) ([]os.FileInfo, error) {
return []os.FileInfo{}, nil
}
// GetInfo retrieves the information about the source code and commit
func (f *FakeGit) GetInfo(repo string) *git.SourceInfo {
return &git.SourceInfo{
Ref: "master",
CommitID: "1bf4f04",
Location: "file:///foo",
}
}