public async Task FetchCommitMessage_ShouldReturnHeadCommitId_ForPushEvent() { var client = Substitute.For <GithubHttpClient>(); var logger = Substitute.For <ILogger <GithubCommitMessageFetcher> >(); var fetcher = new GithubCommitMessageFetcher(client, logger); var message = await fetcher.FetchCommitMessage(new PushEvent { HeadCommit = new Commit { Message = commitMessage } }); message.Should().Be(commitMessage); }
public Handler( RequestValidator requestValidator, PipelineStarter pipelineStarter, PipelineDeployer pipelineDeployer, GithubStatusNotifier statusNotifier, GithubCommitMessageFetcher commitMessageFetcher, IOptions <Config> config, ILogger <Handler> logger ) { this.requestValidator = requestValidator; this.pipelineStarter = pipelineStarter; this.pipelineDeployer = pipelineDeployer; this.statusNotifier = statusNotifier; this.commitMessageFetcher = commitMessageFetcher; this.config = config.Value; this.logger = logger; }
public async Task FetchCommitMessage_ShouldFetchMessageFromApi_ForPullRequestEvent() { var client = Substitute.For <GithubHttpClient>(); var logger = Substitute.For <ILogger <GithubCommitMessageFetcher> >(); var fetcher = new GithubCommitMessageFetcher(client, logger); client.GetAsync <RepoCommit>(Any <string>()).Returns(new RepoCommit { Commit = new RepoCommitDetails { Message = commitMessage } }); var message = await fetcher.FetchCommitMessage(new PullRequestEvent { PullRequest = new PullRequest { Head = new PullRequestHead { Sha = headCommitSha } }, Repository = new Repository { Name = repoName, Owner = new User { Login = ownerName, } } }); message.Should().Be(commitMessage); await client.Received().GetAsync <RepoCommit>(Is <string>($"https://api.github.com/repos/{ownerName}/{repoName}/commits/{headCommitSha}")); }