コード例 #1
0
        static async Task <Tuple <string, string> > ExtractDiffFiles(
            string baseSha, object baseFileContent, string headSha, object headFileContent, string mergeBaseSha, object mergeBaseFileContent,
            string fileName, bool checkedOut, string repoDir = "repoDir", string headRef = "headRef", string baseRef = "baseRef")
        {
            var repositoryModel = Substitute.For <ILocalRepositoryModel>();

            repositoryModel.LocalPath.Returns(repoDir);

            var pullRequest = Substitute.For <IPullRequestModel>();

            pullRequest.Number.Returns(1);

            pullRequest.Base.Returns(new GitReferenceModel(baseRef, "label", baseSha, "uri"));
            pullRequest.Head.Returns(new GitReferenceModel("ref", "label", headSha, "uri"));

            var serviceProvider = Substitutes.ServiceProvider;
            var gitClient       = MockGitClient();
            var gitService      = serviceProvider.GetGitService();
            var service         = new PullRequestService(gitClient, gitService, serviceProvider.GetOperatingSystem(), Substitute.For <IUsageTracker>());

            gitClient.GetPullRequestMergeBase(Arg.Any <IRepository>(), Arg.Any <UriString>(), Arg.Any <UriString>(), baseSha, headSha, baseRef, headRef).ReturnsForAnyArgs(Task.FromResult(mergeBaseSha));
            gitClient.ExtractFile(Arg.Any <IRepository>(), mergeBaseSha, fileName).Returns(GetFileTask(mergeBaseFileContent));
            gitClient.ExtractFile(Arg.Any <IRepository>(), baseSha, fileName).Returns(GetFileTask(baseFileContent));
            gitClient.ExtractFile(Arg.Any <IRepository>(), headSha, fileName).Returns(GetFileTask(headFileContent));

            return(await service.ExtractDiffFiles(repositoryModel, pullRequest, fileName, checkedOut));
        }