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); }