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