Ejemplo n.º 1
0
        public void VisitDependency_ShouldCallGitCloneOnCorrectDirectory()
        {
            var git = Container.Resolve <IGit>();

            RegisterMockFileSystem();
            var instance = new CheckOutBranchVisitor();

            string checkedOutDirectory = string.Empty;
            string checkedOutBranch    = string.Empty;

            git.Arrange(g => g.Checkout(Arg.AnyString))
            .Returns((string branch) =>
            {
                checkedOutDirectory = git.WorkingDirectory;
                checkedOutBranch    = branch;
                return(ReturnCode.Success);
            });

            var code = instance.VisitDependency(Lib2Directory, Lib1Dependency);

            Assert.AreEqual(ReturnCode.Success, code, "Invalid code returned from VisitDependency");
            Assert.AreEqual(ReturnCode.Success, instance.ReturnCode, "Invalid Return Code");
            Assert.AreEqual(Lib1Dependency.Branch, checkedOutBranch, "Invalid branch checked out");
            Assert.AreEqual(Lib1Directory, checkedOutDirectory, "Invalid directory checked out.");
        }
Ejemplo n.º 2
0
        public void VisitProject_ShouldReturn_Success()
        {
            var instance = new CheckOutBranchVisitor();
            var code     = instance.VisitProject(Lib2Directory, Lib2Config);

            Assert.AreEqual(ReturnCode.Success, code, "Invalid code returned from VisitProject");
            Assert.AreEqual(ReturnCode.Success, instance.ReturnCode, "Invalid Return Code");
        }
        public void VisitDependency_ShouldReturn_Success()
        {
            const string BRANCH   = "hotfix/my_branch";
            const bool   CREATE   = false;
            var          instance = new CheckOutBranchVisitor(BRANCH, CREATE);
            var          code     = instance.VisitDependency(Lib2Directory, Lib1Dependency);

            Assert.AreEqual(ReturnCode.Success, code, "Invalid Return Code");
            Assert.AreEqual(ReturnCode.Success, instance.ReturnCode, "Invalid Return Code");
        }
Ejemplo n.º 4
0
        public void VisitDependency_ShouldReturn_FailedToRunGitCommand_WhenGitCheckoutFails()
        {
            var git      = Container.Resolve <IGit>();
            var instance = new CheckOutBranchVisitor();

            git.Arrange(g => g.Checkout(Arg.AnyString))
            .Returns(ReturnCode.FailedToRunGitCommand);

            var code = instance.VisitDependency(Lib2Directory, Lib1Dependency);

            Assert.AreEqual(ReturnCode.FailedToRunGitCommand, code, "Invalid code returned from VisitDependency");
            Assert.AreEqual(ReturnCode.FailedToRunGitCommand, instance.ReturnCode, "Invalid Return Code");
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <returns>The return code.</returns>
        public ReturnCode Execute()
        {
            var visitor = new CheckOutBranchVisitor();

            _algorithm.TraverseDependencies(visitor, _options.Directory);

            if (visitor.ReturnCode == ReturnCode.Success)
            {
                _console.WriteLine("Successfully cloned all dependencies");
            }

            return(visitor.ReturnCode);
        }
        public void VisitProject_ShouldReturn_Success_WhenCheckout_Succeeds()
        {
            const string BRANCH = "hotfix/my_branch";
            const bool   CREATE = false;

            var git = Container.Resolve <IGit>();

            git.Arrange(g => g.Checkout(BRANCH, CREATE))
            .Returns(ReturnCode.Success)
            .MustBeCalled();

            var instance = new CheckOutBranchVisitor(BRANCH, CREATE);
            var code     = instance.VisitProject(Lib2Directory, Lib2Config);

            git.Assert();
            Assert.AreEqual(ReturnCode.Success, code, "Invalid Return Code");
            Assert.AreEqual(ReturnCode.Success, instance.ReturnCode, "Invalid Return Code");
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <returns>The return code.</returns>
        public ReturnCode Execute()
        {
            IVisitor visitor = new CheckOutBranchVisitor();

            _algorithm.TraverseDependencies(visitor, _options.Directory);

            if (visitor.ReturnCode != ReturnCode.Success)
            {
                _console.WriteLine("Could not ensure the correct branch on all dependencies.");
                return(visitor.ReturnCode);
            }

            _algorithm.Reset();
            visitor = new BuildAndUpdateDependenciesVisitor();
            _algorithm.TraverseDependencies(visitor, _options.Directory);

            if (visitor.ReturnCode == ReturnCode.Success)
            {
                _console.WriteLine("Update complete!");
            }

            return(visitor.ReturnCode);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <returns>The return code.</returns>
        public ReturnCode Execute()
        {
            if (string.IsNullOrEmpty(_options.BranchName))
            {
                return(ReturnCode.InvalidArguments);
            }

            IVisitor visitor = new CheckOutBranchVisitor(_options.BranchName, _options.CreateBranch);

            _algorithm.TraverseDependencies(visitor, _options.Directory);

            if (visitor.ReturnCode != ReturnCode.Success)
            {
                return(visitor.ReturnCode);
            }

            _algorithm.Reset();

            visitor = new VerifyCorrectBranchVisitor(new List <string>());
            _algorithm.TraverseDependencies(visitor, _options.Directory);

            return(visitor.ReturnCode);
        }