Exemple #1
0
        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);
        }
        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);
        }