コード例 #1
0
ファイル: GitCheckoutTest.cs プロジェクト: t3hc13h/bounce
        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));
        }
コード例 #2
0
        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"
                },
            });
        }
コード例 #3
0
ファイル: GitCheckoutTest.cs プロジェクト: t3hc13h/bounce
        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());
        }
コード例 #4
0
ファイル: GitCheckoutTest.cs プロジェクト: nbucket/bounce
        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());
        }
コード例 #5
0
ファイル: GitCheckoutTest.cs プロジェクト: t3hc13h/bounce
        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());
        }
コード例 #6
0
ファイル: GitCheckoutTest.cs プロジェクト: nbucket/bounce
        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());
        }
コード例 #7
0
ファイル: GitCheckoutTest.cs プロジェクト: t3hc13h/bounce
        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());
        }
コード例 #8
0
ファイル: GitCheckoutTest.cs プロジェクト: t3hc13h/bounce
        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());
        }
コード例 #9
0
ファイル: GitCheckoutTest.cs プロジェクト: nbucket/bounce
        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());
        }
コード例 #10
0
        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,
            });
        }
コード例 #11
0
ファイル: GitCheckoutTest.cs プロジェクト: nbucket/bounce
        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));
        }