Пример #1
0
        public void UnsyncedPresenter_AfterRefresh_OutgoingCommitsAreDisplayed()
        {
            var vm = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

            CollectionAssert.AreEquivalent(_provider.Object.UnsyncedLocalCommits.ToList(), vm.OutgoingCommits.ToList());
        }
Пример #2
0
        public void UnsyncedPresenter_AfterRefresh_ViewBranchIsCurrentBranch()
        {
            var vm = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

            Assert.AreEqual(_initialBranch.Name, vm.CurrentBranch);
        }
Пример #3
0
        public void UnsyncedPresenter_OnFetch_ProviderFetches()
        {
            var vm = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

            vm.FetchCommitsCommand.Execute(null);

            _provider.Verify(git => git.Fetch(It.IsAny <string>()));
        }
Пример #4
0
        public void UnsyncedPresenter_OnPush_ProviderPushes()
        {
            var vm = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

            vm.PushCommitsCommand.Execute(null);

            _provider.Verify(git => git.Push());
        }
Пример #5
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());
        }
Пример #6
0
        public void UnsyncedPresenter_AfterFetch_IncomingCommitsRefreshes()
        {
            var vm = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

            _provider.SetupGet(git => git.UnsyncedRemoteCommits)
            .Returns(new List <ICommit> {
                new Commit("1111111", "Hosch250", "Fixed the foobarred bazzer.")
            });

            vm.FetchCommitsCommand.Execute(null);

            CollectionAssert.AreEquivalent(_provider.Object.UnsyncedRemoteCommits.ToList(), vm.IncomingCommits.ToList());
        }
Пример #7
0
        public void UnsyncedPresenter_WhenSyncFails_ActionFailedEventIsRaised()
        {
            var wasRaised = false;
            var vm        = new UnsyncedCommitsPanelViewModel
            {
                Provider = _provider.Object
            };

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

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

            vm.SyncCommitsCommand.Execute(null);

            Assert.IsTrue(wasRaised, "ActionFailedEvent was not raised.");
        }