github.com/openshift/docker-source-to-images@v1.2.0/pkg/test/git.go (about)

     1  package test
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/openshift/source-to-image/pkg/scm/git"
     7  )
     8  
     9  // FakeGit provides a fake Git
    10  type FakeGit struct {
    11  	CloneSource *git.URL
    12  	CloneTarget string
    13  	CloneError  error
    14  
    15  	CheckoutRepo  string
    16  	CheckoutRef   string
    17  	CheckoutError error
    18  
    19  	SubmoduleInitRepo  string
    20  	SubmoduleInitError error
    21  
    22  	SubmoduleUpdateRepo      string
    23  	SubmoduleUpdateInit      bool
    24  	SubmoduleUpdateRecursive bool
    25  	SubmoduleUpdateError     error
    26  }
    27  
    28  // Clone clones the fake source Git repository to target directory
    29  func (f *FakeGit) Clone(source *git.URL, target string, c git.CloneConfig) error {
    30  	f.CloneSource = source
    31  	f.CloneTarget = target
    32  	return f.CloneError
    33  }
    34  
    35  // Checkout checkouts a ref in the fake Git repository
    36  func (f *FakeGit) Checkout(repo, ref string) error {
    37  	f.CheckoutRepo = repo
    38  	f.CheckoutRef = ref
    39  	return f.CheckoutError
    40  }
    41  
    42  // SubmoduleInit initializes / clones submodules.
    43  func (f *FakeGit) SubmoduleInit(repo string) error {
    44  	f.SubmoduleInitRepo = repo
    45  	return f.SubmoduleInitError
    46  }
    47  
    48  // SubmoduleUpdate checks out submodules to their correct version
    49  func (f *FakeGit) SubmoduleUpdate(repo string, init, recursive bool) error {
    50  	f.SubmoduleUpdateRepo = repo
    51  	f.SubmoduleUpdateRecursive = recursive
    52  	f.SubmoduleUpdateInit = init
    53  	return f.SubmoduleUpdateError
    54  }
    55  
    56  // LsTree returns a slice of os.FileInfo objects populated with the paths and
    57  // file modes of files known to Git.  This is used on Windows systems where the
    58  // executable mode metadata is lost on git checkout.
    59  func (f *FakeGit) LsTree(repo, ref string, recursive bool) ([]os.FileInfo, error) {
    60  	return []os.FileInfo{}, nil
    61  }
    62  
    63  // GetInfo retrieves the information about the source code and commit
    64  func (f *FakeGit) GetInfo(repo string) *git.SourceInfo {
    65  	return &git.SourceInfo{
    66  		Ref:      "master",
    67  		CommitID: "1bf4f04",
    68  		Location: "file:///foo",
    69  	}
    70  }