public void IntializeFixtures()
        {
            _provider = new Mock<ISourceControlProvider>();
            _view = new Mock<IBranchesView>();
            _createView = new Mock<ICreateBranchView>();
            _deleteView = new Mock<IDeleteBranchView>();
            _mergeView = new Mock<IMergeView>();

            _intialBranch = new Branch("master", "refs/Heads/master", false, true);

            //todo: create more realistic list of branches. Include `HEAD` so that we can ensure it gets excluded.

            _branches = new List<IBranch>()
            {
                _intialBranch,
                new Branch("dev", "ref/Heads/dev",isRemote: false, isCurrentHead:false),
                new Branch("origin/master", "refs/remotes/origin/master", true, true),
                new Branch("origin/HEAD", "refs/remotes/origin/HEAD", true, false)
            };

            _provider.SetupGet(git => git.Branches).Returns(_branches);
            _provider.SetupGet(git => git.CurrentBranch).Returns(_intialBranch);

            _presenter = new BranchesPresenter(_view.Object, _createView.Object, _deleteView.Object, _mergeView.Object, _provider.Object);
        }
Пример #2
0
        public void ChangesCurrentBranchRefreshesWhenBranchIsCheckedOut()
        {
            //arrange
            _configService.Setup(c => c.LoadConfiguration())
                .Returns(GetDummyConfig());

            SetupValidVbProject();

            var changesView = new Mock<IChangesView>();
            changesView.SetupProperty(v => v.CurrentBranch, "master");
            var changesPresenter = new ChangesPresenter(changesView.Object);

            var branchesView = new Mock<IBranchesView>();
            branchesView.SetupProperty(b => b.Current, "master");

            var branchesPresenter = new BranchesPresenter(branchesView.Object, new Mock<ICreateBranchView>().Object, new Mock<IDeleteBranchView>().Object, new Mock<IMergeView>().Object);

            var provider = new Mock<ISourceControlProvider>();
            provider.Setup(git => git.Checkout(It.IsAny<string>()));
            provider.SetupGet(git => git.CurrentBranch)
                .Returns(new Branch("dev", "/ref/head/dev", false, true));

            branchesPresenter.Provider = provider.Object;
            changesPresenter.Provider = provider.Object;

            //purposely createing a new presenter with specific child presenters
            var presenter = new SourceControlPresenter(_vbe.Object, _addIn.Object, _configService.Object,
                                                        _view.Object, changesPresenter, branchesPresenter,
                                                        _settingsPresenter.Object, _unsyncedPresenter.Object,
                                                        _folderBrowserFactory.Object, _providerFactory.Object,
                                                        _failedActionView.Object, _loginView.Object);

            //act
            branchesView.Object.Current = "dev";
            branchesView.Raise(b => b.SelectedBranchChanged += null, new EventArgs());

            //assert
            Assert.AreEqual("dev", changesView.Object.CurrentBranch);
        }