public void ShouldReturnPathsRelativeToWorkingDirectory() { var gitRepo = new GitCheckout() {Directory = "dir"}; var subPath = gitRepo.Files["test.txt"]; Assert.That(subPath.Value, Is.EqualTo(@"dir\test.txt")); Assert.That(subPath.IsDependentOn(gitRepo)); }
public static object GetTargets(IParameters parameters) { var git = new GitCheckout { Repository = @"C:\Users\Public\Documents\Development\BigSolution.git", Directory = "one" }; var solution = new VisualStudioSolution { SolutionPath = git.Files["BigSolution.sln"] }; var webProject = solution.Projects[parameters.Default("proj", "BigSolution")]; var serviceName = parameters.Default("svc", "BigWindowsService"); var service = solution.Projects[serviceName]; return(new { WebSite = new Iis7WebSite { Directory = webProject.ProjectDirectory, Name = "BigWebSite", Port = 5001 }, Tests = new NUnitTests { DllPaths = solution.Projects.Select(p => p.OutputFile) }, Service = new WindowsService { BinaryPath = service.OutputFile, Name = serviceName, DisplayName = "Big Windows Service", Description = "a big windows service demonstrating the bounce build framework" }, Zip = new ZipFile { Directory = webProject.WhenBuilt(() => Path.GetDirectoryName(webProject.OutputFile.Value)), ZipFileName = "web.zip" }, }); }
public void CleanShouldDeleteDirectory() { var git = new Mock<IGitCommand>(); var dirs = new Mock<IDirectoryUtils>(); var parser = new Mock<IGitRepoParser>(); var gitRepo = new GitCheckout(parser.Object, dirs.Object, git.Object) {Repository = "repo", Directory = "path"}; gitRepo.Clean(); dirs.Verify(d => d.DeleteDirectory("path"), Times.Once()); }
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()); }
public static object RealTargets(IParameters buildParameters) { var version = buildParameters.Required <string>("version"); var git = new GitCheckout { Repository = "git://github.com/refractalize/bounce.git", Directory = "tmp2", }; var asmInfoWithVersion = new RewriteFile { FilePath = "SolutionAssemblyInfo.cs", Rewriter = RewriteVersion(version), }; var solution = new VisualStudioSolution { SolutionPath = "Bounce.sln", DependsOn = new [] { asmInfoWithVersion } }; var frameworkProject = solution.Projects["Bounce.Framework"]; var downloadsDir = new CleanDirectory { Path = "Downloads", }; var frameworkZip = new ZipFile { Directory = frameworkProject.WhenBuilt(() => Path.GetDirectoryName(frameworkProject.OutputFile.Value)), ZipFileName = downloadsDir.Files[version.WhenBuilt(() => string.Format("Bounce.Framework.{0}.zip", version.Value))], }; var gitTag = new GitTag { Directory = ".", Tag = version.WhenBuilt(() => "v" + version.Value) }; var downloads = new All(frameworkZip, gitTag); return(new { Tests = new NUnitTests { DllPaths = solution.Projects.Select(p => p.OutputFile), }, Downloads = downloads, RewriteAsmInfo = asmInfoWithVersion, }); }