public void IfPathGivenShouldBeUsedInClone() { var git = new Mock<IGitCommand>(); var dirs = new Mock<IDirectoryUtils>(); var parser = new Mock<IGitRepoParser>(); parser.Setup(p => p.ParseCloneDirectoryFromRepoUri("repo")).Returns("dir"); dirs.Setup(d => d.DirectoryExists("dir")).Returns(false); var gitRepo = new GitCheckout(parser.Object, dirs.Object, git.Object) {Repository = "repo", Directory = "path"}; gitRepo.Build(Bounce.Object); git.Verify(g => g.Clone("repo", "path", null, Log, Bounce.Object), Times.Once()); }
public void IfDirectoryNotExtantShouldUseClone() { var git = new Mock<IGitCommand>(); var dirs = new Mock<IDirectoryUtils>(); var parser = new Mock<IGitRepoParser>(); parser.Setup(p => p.ParseCloneDirectoryFromRepoUri("repo")).Returns("dir"); dirs.Setup(d => d.DirectoryExists("dir")).Returns(false); var gitRepo = new GitCheckout(parser.Object, dirs.Object, git.Object) {Repository = "repo"}; gitRepo.Build(Bounce.Object); git.Verify(g => g.Clone("repo", "dir", null, Log, Bounce.Object), Times.Once()); }
public void IfBranchIsProvidedShouldCloneWithBranchOptions() { var git = new Mock<IGitCommand>(); var dirs = new Mock<IDirectoryUtils>(); var parser = new Mock<IGitRepoParser>(); parser.Setup(p => p.ParseCloneDirectoryFromRepoUri("repo")).Returns("dir"); dirs.Setup(d => d.DirectoryExists("dir")).Returns(false); var gitRepo = new GitCheckout(parser.Object, dirs.Object, git.Object) { Repository = "repo", Directory = "path", Branch = "develop" }; gitRepo.Build(Bounce.Object); var expectedOption = new Dictionary<string, string> { { "--branch", "develop" } }; git.Verify(g => g.Clone("repo", "path", expectedOption, Log, Bounce.Object), Times.Once()); }
public void IfDirectoryAlreadyExtantShouldUsePull() { var git = new Mock<IGitCommand>(); var dirs = new Mock<IDirectoryUtils>(); var parser = new Mock<IGitRepoParser>(); parser.Setup(p => p.ParseCloneDirectoryFromRepoUri("repo")).Returns("dir"); dirs.Setup(d => d.DirectoryExists("dir")).Returns(true); var gitRepo = new GitCheckout(parser.Object, dirs.Object, git.Object) { Repository = "repo" }; gitRepo.Build(Bounce.Object); git.Verify(g => g.Pull("dir", Log, Bounce.Object), Times.Once()); }