예제 #1
0
        public void Initialize_PullRequestDoesntExist_PullRequestDataShouldBeLoadedFromDefaultsAndCommits()
        {
            var remoteBranches   = GetRemoteBranches();
            var activeRepository = GetActiveRepo();

            activeRepository.Branches.First(x => x.IsHead).TrackedBranchName = "RemoteHeadBranchName";

            IEnumerable <GitCommit> commits = new List <GitCommit>()
            {
                new GitCommit()
                {
                    Message = "Message"
                }
            };
            IEnumerable <FileDiff> fileDiffs = new List <FileDiff>()
            {
                new FileDiff()
            };
            List <ITreeFile> treeFiles = new List <ITreeFile>()
            {
                new TreeDirectory("name")
            };
            IEnumerable <GitUser> defaultReviewers = new List <GitUser>()
            {
                new GitUser(), new GitUser()
            };

            _pullRequestDiffViewModel.Stub(x => x.Commits).Return(commits.ToList());
            _pullRequestDiffViewModel.Stub(x => x.FileDiffs).Return(fileDiffs.ToList());
            _pullRequestDiffViewModel.Stub(x => x.FilesTree).Return(treeFiles);

            _gitService.Expect(x => x.GetActiveRepository()).Return(activeRepository);
            _gitClientService.Expect(x => x.GetBranches()).Return(remoteBranches.FromTaskAsync());

            var srcBranch = remoteBranches.First(x => x.Name == "RemoteHeadBranchName");
            var dstBranch = remoteBranches.First(x => x.Name == "RemoteDefaultBranchName");

            _gitClientService.Expect(x => x.GetPullRequestForBranches(srcBranch.Name, dstBranch.Name))
            .Return(Task.FromResult <GitPullRequest>(null));
            _gitClientService.Expect(x => x.GetCommitsRange(srcBranch, dstBranch)).Return(commits.FromTaskAsync());
            _gitClientService.Expect(x => x.GetCommitsDiff(srcBranch.Target.Hash, dstBranch.Target.Hash))
            .Return(fileDiffs.FromTaskAsync());
            _gitClientService.Expect(x => x.GetDefaultReviewers()).Return(defaultReviewers.FromTaskAsync());
            _treeStructureGenerator.Expect(x => x.CreateFileTree(fileDiffs)).Return(treeFiles);

            _sut.Initialize();

            Assert.That(_sut.PullRequestDiffViewModel.Commits, Is.EqualTo(commits));
            Assert.That(_sut.PullRequestDiffViewModel.FilesTree, Is.EqualTo(treeFiles));
            Assert.That(_sut.PullRequestDiffViewModel.FileDiffs, Is.EqualTo(fileDiffs));

            Assert.That(_sut.Title, Is.EqualTo(_sut.SourceBranch.Name));
            Assert.That(_sut.Description, Is.Not.Empty);
            Assert.That(_sut.SelectedReviewers.Count, Is.EqualTo(defaultReviewers.Count()));
            Assert.IsNull(_sut.RemotePullRequest);
        }
예제 #2
0
        public void SetUp()
        {
            _gitClientService         = MockRepository.GenerateMock <IGitClientService>();
            _gitService               = MockRepository.GenerateMock <IGitService>();
            _pageNavigationService    = MockRepository.GenerateMock <IPageNavigationService <IPullRequestsWindow> >();
            _eventAggregator          = new EventAggregatorService();
            _treeStructureGenerator   = MockRepository.GenerateMock <ITreeStructureGenerator>();
            _commandsService          = MockRepository.GenerateMock <ICommandsService>();
            _pullRequestDiffViewModel = MockRepository.GenerateMock <IPullRequestDiffViewModel>();

            _pullRequestDiffViewModel.Stub(x => x.ThrowableCommands).Return(new List <ReactiveCommand>());

            _sut = CreateSut();
        }