public async Task BranchProtectionRuleAppliedForFeatureBranch() { var gitHubMock = GitHubClientMockFactory.CreateDefault(); var payload = SampleData.BranchCreate.Body .Replace("\"ref\": \"master\"", "\"ref\": \"feature\"", System.StringComparison.InvariantCultureIgnoreCase); var eh = new BranchProtectionRuleHandler(gitHubMock.CreateFactory(), MemoryCacheMockFactory.Instance, NullLogger.Instance); var result = await eh.Execute(payload); Assert.IsTrue(result.Result.Contains("branch protection rule applied", System.StringComparison.InvariantCultureIgnoreCase)); gitHubMock.GitHubClientMock.Verify(c => c.Repository.Branch.UpdateBranchProtection(339388815, "feature", It.IsAny <Octokit.BranchProtectionSettingsUpdate>()), Times.Once()); }
public async Task BranchProtectionRuleNotAppliedIfNotBranch() { var gitHubMock = GitHubClientMockFactory.CreateDefault(); var payload = SampleData.BranchCreate.Body .Replace("\"ref_type\": \"branch\"", "\"ref_type\": \"aaaaa\"", System.StringComparison.InvariantCultureIgnoreCase); var eh = new BranchProtectionRuleHandler(gitHubMock.CreateFactory(), MemoryCacheMockFactory.Instance, NullLogger.Instance); var result = await eh.Execute(payload); Assert.IsTrue(result.Result.Contains("not of interest", System.StringComparison.InvariantCultureIgnoreCase)); gitHubMock.GitHubClientMock.Verify(c => c.Repository.Branch.UpdateBranchProtection(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <Octokit.BranchProtectionSettingsUpdate>()), Times.Never()); }
public async Task BranchProtectionRuleAppliedForDefaultBranch(string defaultBranchName) { var gitHubMock = GitHubClientMockFactory.CreateDefault(); var payload = SampleData.BranchCreate.Body .Replace("\"ref\": \"master\"", $"\"ref\": \"{defaultBranchName}\"", System.StringComparison.InvariantCultureIgnoreCase) .Replace("\"master_branch\": \"master\"", $"\"master_branch\": \"{defaultBranchName}\"", System.StringComparison.InvariantCultureIgnoreCase) .Replace("\"default_branch\": \"master\"", $"\"default_branch\": \"{defaultBranchName}\"", System.StringComparison.InvariantCultureIgnoreCase); var eh = new BranchProtectionRuleHandler(gitHubMock.CreateFactory(), MemoryCacheMockFactory.Instance, NullLogger.Instance); var result = await eh.Execute(payload); Assert.IsTrue(result.Result.Contains("branch protection rule applied", System.StringComparison.InvariantCultureIgnoreCase)); gitHubMock.GitHubClientMock.Verify(c => c.Repository.Branch.UpdateBranchProtection(339388815, defaultBranchName, It.Is <Octokit.BranchProtectionSettingsUpdate>(val => val.RequiredPullRequestReviews.RequiredApprovingReviewCount > 0)), Times.Once()); }