Esempio n. 1
0
        public void DeleteBranch_BranchIsNotActive_BranchIsRemoved()
        {
            var firstBranchName  = "master";
            var secondBranchName = "bugBranch";

            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            Assert.IsFalse(vm.DeleteBranchToolbarButtonCommand.CanExecute(bool.FalseString));

            _provider.SetupGet(p => p.Branches).Returns(
                new List <IBranch>
            {
                new Branch(firstBranchName, "ref/Heads/" + firstBranchName, false, true, null),
                new Branch(secondBranchName, "ref/Heads/" + secondBranchName, false, false, null)
            });

            vm.CurrentPublishedBranch   = firstBranchName;
            vm.CurrentUnpublishedBranch = secondBranchName;

            _provider.Setup(p => p.DeleteBranch(It.IsAny <string>()));

            vm.DeleteBranchToolbarButtonCommand.Execute(bool.FalseString);

            _provider.Verify(p => p.DeleteBranch(secondBranchName));
        }
Esempio n. 2
0
        public void HeadIsNotIncludedInPublishedBranches()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            CollectionAssert.DoesNotContain(vm.PublishedBranches.ToList(), "HEAD");
        }
Esempio n. 3
0
        public void CreateBranch_BranchExists()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute("master"));
        }
Esempio n. 4
0
        public void MergeViewSelectedDestinationBranchIsCurrentBranch()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            Assert.AreEqual(_intialBranch.Name, vm.DestinationBranch);
        }
Esempio n. 5
0
        public void CreateBranch_NameContainsConsecutiveAtSignAndOpenBrace()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bug@{branch"
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 6
0
        public void CreateBranch_NameIsAtSign()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "@"
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 7
0
        public void CreateBranch_NameEndsWithSlash()
        {            //arrange
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bugBranch/"
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 8
0
        public void CreateBranch_ValidBranchName()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bugBranch"
            };

            Assert.IsTrue(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 9
0
        public void DeleteBranchEnabled_BranchIsNotActive()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object,
                CurrentPublishedBranch = "bugbranch"
            };

            Assert.IsTrue(vm.DeleteBranchToolbarButtonCommand.CanExecute(bool.TrueString));
        }
Esempio n. 10
0
        public void CreateBranch_NameContainsSlashSectionEndingWithDotlock()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bug/branch.lock"
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 11
0
        public void CreateBranch_NameContainsBackslash()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bug\\branch"
            };

            Assert.IsFalse(vm.CreateBranchOkButtonCommand.CanExecute(null));
        }
Esempio n. 12
0
        public void ChangingSelectedBranchChecksOutThatBranch()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                CurrentBranch = "dev"
            };

            _provider.Verify(git => git.Checkout("dev"));
        }
Esempio n. 13
0
        public void RefreshingViewShouldNotCheckoutBranch()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object,
            };

            vm.RefreshView();

            _provider.Verify(git => git.Checkout(It.IsAny <string>()), Times.Once);  //checkout when we first set provider
        }
Esempio n. 14
0
        public void MergeBranchViewIsShownOnCreateBranch()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            vm.NewBranchCommand.Execute(null);

            Assert.IsFalse(vm.DisplayMergeBranchesGrid);
        }
Esempio n. 15
0
        public void MergeViewIsShownOnMergeClick()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            vm.MergeBranchCommand.Execute(null);

            Assert.IsTrue(vm.DisplayMergeBranchesGrid);
        }
Esempio n. 16
0
        public void CreateBranchUserInputIsClearedAfterCancel()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "newBranch"
            };

            vm.CreateBranchCancelButtonCommand.Execute(null);

            Assert.AreEqual(string.Empty, vm.NewBranchName);
        }
Esempio n. 17
0
        public void MergeViewIsHiddenOnCancel()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object,
                DisplayMergeBranchesGrid = true
            };

            vm.MergeBranchesCancelButtonCommand.Execute(null);

            Assert.IsFalse(vm.DisplayMergeBranchesGrid);
        }
Esempio n. 18
0
        public void CreateBranchViewIshiddenAfterCancel()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object,
                DisplayCreateBranchGrid = true
            };

            vm.CreateBranchCancelButtonCommand.Execute(null);

            Assert.IsFalse(vm.DisplayCreateBranchGrid);
        }
Esempio n. 19
0
        public void ProviderCallsCreateBranchOnCreateBranchConfirm()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = "bugBranch"
            };

            vm.CreateBranchOkButtonCommand.Execute(null);

            _provider.Verify(git => git.CreateBranch(It.Is <string>(s => s == vm.CurrentBranch), It.Is <string>(s => s == "bugBranch")));
        }
Esempio n. 20
0
        public void ProviderMergesOnMergeViewSubmit()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider          = _provider.Object,
                SourceBranch      = "dev",
                DestinationBranch = "master"
            };

            vm.MergeBranchesOkButtonCommand.Execute(null);

            _provider.Verify(git => git.Merge("dev", "master"));
        }
Esempio n. 21
0
        public void SelectedBranchShouldBeCurrentBranchAfterRefresh()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            _provider.SetupGet(git => git.CurrentBranch).Returns(_branches[1]);

            vm.RefreshView();

            Assert.AreEqual(_provider.Object.CurrentBranch.Name, vm.CurrentBranch);
        }
Esempio n. 22
0
        public void OnlyLocalBranchesInBranches()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            var expected = new List <string> {
                "master", "dev"
            };

            CollectionAssert.AreEquivalent(expected, vm.LocalBranches.ToList());
        }
Esempio n. 23
0
        public void UnPublishedBranchesAreListed()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };

            var expected = new List <string> {
                "dev"
            };

            CollectionAssert.AreEqual(expected, vm.UnpublishedBranches.ToList());
        }
Esempio n. 24
0
        public void UnpublishUnpublishesBranch()
        {
            var branch = "master";
            var vm     = new BranchesPanelViewModel
            {
                Provider = _provider.Object,
                CurrentPublishedBranch = branch
            };

            vm.UnpublishBranchToolbarButtonCommand.Execute(null);

            _provider.Verify(git => git.Unpublish(branch));
        }
Esempio n. 25
0
        public void MergeViewIsHiddenOnSuccessfulMerge()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider                 = _provider.Object,
                SourceBranch             = "fizz",
                DestinationBranch        = "buzz",
                DisplayMergeBranchesGrid = true
            };

            vm.MergeBranchesOkButtonCommand.Execute(null);

            Assert.IsFalse(vm.DisplayMergeBranchesGrid);
        }
Esempio n. 26
0
        public void InitializeMocks()
        {
            _vbe = new MockVbeBuilder()
                   .ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                   .AddComponent("Module1", ComponentType.StandardModule, string.Empty)
                   .MockVbeBuilder()
                   .Build();



            _configService = new Mock <IConfigProvider <SourceControlSettings> >();
            _configService.Setup(c => c.Create()).Returns(GetDummyConfig());

            _folderBrowser        = new Mock <IFolderBrowser>();
            _folderBrowserFactory = new Mock <IFolderBrowserFactory>();
            _folderBrowserFactory.Setup(f => f.CreateFolderBrowser(It.IsAny <string>())).Returns(_folderBrowser.Object);
            _folderBrowserFactory.Setup(f => f.CreateFolderBrowser(It.IsAny <string>(), It.IsAny <bool>())).Returns(_folderBrowser.Object);
            _folderBrowserFactory.Setup(f => f.CreateFolderBrowser(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <string>())).Returns(_folderBrowser.Object);


            var masterRemote = new Mock <LibGit2Sharp.Branch>();

            masterRemote.SetupGet(git => git.Tip).Returns(new Mock <LibGit2Sharp.Commit>().Object);
            masterRemote.SetupGet(git => git.FriendlyName).Returns("master");

            var initialBranch = new Branch("master", "refs/Heads/master", false, true, masterRemote.Object);

            _provider = new Mock <ISourceControlProvider>();
            _provider.SetupGet(git => git.CurrentBranch).Returns(initialBranch);
            _provider.SetupGet(git => git.UnsyncedLocalCommits).Returns(new List <ICommit>());
            _provider.SetupGet(git => git.UnsyncedRemoteCommits).Returns(new List <ICommit>());
            _provider.Setup(git => git.InitVBAProject(It.IsAny <string>())).Returns(GetDummyRepo());
            _provider.Setup(git => git.Clone(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <SecureCredentials>())).Returns(GetDummyRepo());
            _provider.Setup(git => git.CurrentRepository).Returns(GetDummyRepo());

            _providerFactory = new Mock <ISourceControlProviderFactory>();
            _providerFactory.Setup(f => f.CreateProvider(It.IsAny <IVBProject>()))
            .Returns(_provider.Object);
            _providerFactory.Setup(f => f.CreateProvider(It.IsAny <IVBProject>(), It.IsAny <IRepository>()))
            .Returns(_provider.Object);
            _providerFactory.Setup(f => f.CreateProvider(It.IsAny <IVBProject>(), It.IsAny <IRepository>(), It.IsAny <SecureCredentials>()))
            .Returns(_provider.Object);

            _changesVM  = new ChangesPanelViewModel();
            _branchesVM = new BranchesPanelViewModel();
            _unsyncedVM = new UnsyncedCommitsPanelViewModel();
            _settingsVM = new SettingsPanelViewModel(_configService.Object, _folderBrowserFactory.Object, new Rubberduck.UI.OpenFileDialog());
        }
Esempio n. 27
0
        public void PublishBranch_ActionFailedEventIsRaised()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };
            var wasRaised = false;

            _provider.Setup(p => p.Publish(It.IsAny <string>()))
            .Throws(
                new SourceControlException("A source control exception was thrown.",
                                           new LibGit2Sharp.LibGit2SharpException("With an inner libgit2sharp exception"))
                );

            vm.ErrorThrown += (sender, error) => wasRaised = true;

            vm.PublishBranchToolbarButtonCommand.Execute(null);

            Assert.IsTrue(wasRaised, "ActionFailedEvent was not raised.");
        }
Esempio n. 28
0
        public void OnBranchChange_WhenCheckoutFails_ActionFailedEventIsRaised()
        {
            var vm = new BranchesPanelViewModel
            {
                Provider = _provider.Object
            };
            var wasRaised = false;

            _provider.Setup(p => p.Checkout(It.IsAny <string>()))
            .Throws(
                new SourceControlException("A source control exception was thrown.",
                                           new LibGit2Sharp.LibGit2SharpException("With an inner libgit2sharp exception"))
                );

            vm.ErrorThrown += (sender, error) => wasRaised = true;

            vm.CurrentBranch = null;

            Assert.IsTrue(wasRaised, "ActionFailedEvent was not raised.");
        }
Esempio n. 29
0
        public void OnCreateBranch_WhenCreateFails_ActionFailedEventIsRaised()
        {
            var wasRaised  = false;
            var branchName = "dev";

            var vm = new BranchesPanelViewModel
            {
                Provider      = _provider.Object,
                NewBranchName = branchName
            };

            _provider.Setup(p => p.CreateBranch(It.Is <string>(b => b == vm.CurrentBranch), It.Is <string>(b => b == branchName)))
            .Throws(
                new SourceControlException("A source control exception was thrown.",
                                           new LibGit2Sharp.LibGit2SharpException("With an inner libgit2sharp exception"))
                );

            vm.ErrorThrown += (sender, error) => wasRaised = true;

            vm.CreateBranchOkButtonCommand.Execute(null);

            Assert.IsTrue(wasRaised, "ActionFailedEvent was not raised.");
        }
Esempio n. 30
0
        public void MergeViewIsNotShownWhenLocal_IsNull()
        {
            var vm = new BranchesPanelViewModel();

            Assert.IsFalse(vm.MergeBranchCommand.CanExecute(null));
        }