public async Task ItShouldProcessIssueCommentsWebhookWhenActionIsCreated(string actionState) { var currentUser = new User("", "", "", 0, "", DateTimeOffset.MinValue, DateTimeOffset.MinValue, 0, "", 0, 0, null, "", 0, 0, "", "currentUser", null, 0, null, 0, 0, 0, "", new RepositoryPermissions(false, false, false), false, "", null); var githubService = new Mock <IGitHubService>(); githubService.Setup(x => x.GetCurrentUser()).ReturnsAsync(currentUser); var pipelineRunnerService = new Mock <IPipelineRunnerService>(); var controller = new GitHubController(pipelineRunnerService.Object, githubService.Object); var viewModel = new IssueCommentWebHookViewModel() { Action = actionState, Issue = new IssueViewModel() { Number = 5 }, Comment = new IssueCommentViewModel() { User = new UserViewModel() { Login = "******" } } }; var result = await controller.HandleIssueCommentsWebhook("", viewModel); pipelineRunnerService.Verify(x => x.ProcessIssue(It.Is <int>(y => y == 5)), Times.Once()); Assert.IsType <OkResult>(result); }
public async Task ItShouldNotProcessIssueCommentsWebhookWhenActionIsNotCreated(string actionState) { var pipelineRunnerService = new Mock <IPipelineRunnerService>(); var controller = new GitHubController(pipelineRunnerService.Object, Mock.Of <IGitHubService>()); var viewModel = new IssueCommentWebHookViewModel() { Action = actionState, Issue = new IssueViewModel() { Number = 5 }, Comment = new IssueCommentViewModel() { User = new UserViewModel() { Login = "******" } } }; var result = await controller.HandleIssueCommentsWebhook("", viewModel); pipelineRunnerService.Verify(x => x.ProcessIssue(It.Is <int>(y => y == 5)), Times.Never()); Assert.IsType <OkResult>(result); }
public async Task TestSearchUsers_Model_As_Expected() { // Arrange GitHubController controller = new GitHubController(new GitHubConnectionMock(), new ErrorLogger()); // Act ViewResult result = await controller.SearchUsers("sohail92") as ViewResult; // Assert Assert.IsInstanceOfType(result.Model, typeof(UserRepoVM)); }
public async Task TestSearchUsersAction() { // Arrange GitHubController controller = new GitHubController(new GitHubConnectionMock(), new ErrorLogger()); // Act var result = await controller.SearchUsers("sohail92"); // Assert Assert.IsNotNull(result); }
public async Task ItShouldProcessIssuesWebhookWhenActionIsOpenedOrEdited(string actionState) { var pipelineRunnerService = new Mock <IPipelineRunnerService>(); var controller = new GitHubController(pipelineRunnerService.Object, Mock.Of <IGitHubService>()); var viewModel = new IssueWebHookViewModel() { Action = actionState, Issue = new IssueViewModel() { Number = 5 } }; var result = await controller.HandleIssuesWebhook("", viewModel); pipelineRunnerService.Verify(x => x.ProcessIssue(It.Is <int>(y => y == 5)), Times.Once()); Assert.IsType <OkResult>(result); }
public async Task <ActionResult> GithubWebhook() { if (Request.Headers.TryGetValue("X-Hub-Signature", out var sig)) { if (!Request.Headers.TryGetValue("X-GitHub-Event", out var eventType)) { logger.Error("X-GitHub-Event missing."); return(BadRequest("No event.")); } string payloadString = null; using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { payloadString = await reader.ReadToEndAsync(); } var payloadHash = GitHubController.GetPayloadHash(payloadString, settings.Settings.Addons.GitHubSecret); if (sig != $"sha1={payloadHash}") { logger.Error("PayloadHash signature check failed."); return(BadRequest("Signature check failed.")); } if (eventType == WebHookEvents.Push) { var payload = Serialization.FromJson <PushEvent>(payloadString); if (payload.@ref?.EndsWith("master") == true) { #pragma warning disable CS4014 RegenerateAddonDatabase(); #pragma warning restore CS4014 } } return(Ok()); } logger.Error("Addons github webhook not processed correctly."); return(BadRequest()); }
public async Task TestAPI2() { // Arrange var testURL = new Repository { Url = "https://github.com/BoletoNet/boletonet" }; // Act var controller = new GitHubController(); var actionResult = await controller.PostParser(testURL); // Assert var viewResult = Assert.IsType <ObjectResult>(actionResult); var model = Assert.IsAssignableFrom <IEnumerable <GitHubResults> >(viewResult.Value); Assert.Equal(44, model.Count()); var testSLN = model.FirstOrDefault(x => x.Extension.Equals(".sln")); Assert.Equal(8692, testSLN.TotalBytes); Assert.Equal(137, testSLN.TotalLines); }
public void SetUp() { _mockVcsService = new Mock <IVcsService <GitHubUser, GitHubRepository> >(); _gitHubController = new GitHubController(_mockVcsService.Object); }
/// <summary> /// Gets data for all GitHub contributors for all listed Umbraco repositories, /// excluding the GitHub IDs of the HQ contributors from the text file list /// </summary> /// <returns></returns> public ActionResult GitHubGetContributorsResult() { var model = new GitHubContributorsModel(); try { string configPath = Server.MapPath("~/config/githubhq.txt"); if (!System.IO.File.Exists(configPath)) { LogHelper.Debug <GitHubContributorController>("Config file was not found: " + configPath); return(PartialView("~/Views/Partials/Home/GitHubContributors.cshtml", model)); } string[] login = System.IO.File.ReadAllLines(configPath).Where(x => x.Trim() != "").Distinct().ToArray(); var contributors = ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem <List <GitHubGlobalContributorModel> >("UmbracoGitHubContributors", () => { var githubController = new GitHubController(); var gitHubContributors = new List <GitHubContributorModel>(); foreach (var repo in Repositories) { var response = githubController.GetAllRepoContributors(repo); if (response.StatusCode == HttpStatusCode.OK && response.ResponseStatus == ResponseStatus.Completed) { gitHubContributors.AddRange(response.Data); } else { LogHelper.Warn <IGitHubContributorsModel>(string.Format("Invalid HTTP response for repository {0}", repo)); } } // filter to only include items from the last year var filteredRange = DateTime.UtcNow.AddYears(-1).Subtract(new DateTime(1970, 1, 1)).TotalSeconds; foreach (var contrib in gitHubContributors) { int add = 0, del = 0, total = 0; foreach (var wk in contrib.Weeks.Where(x => x.W >= filteredRange)) { add += wk.A; del += wk.D; total += wk.C; } contrib.Total = total; contrib.TotalAdditions = add; contrib.TotalDeletions = del; } var filteredContributors = gitHubContributors .Where(g => !login.Contains(g.Author.Login)) .GroupBy(g => g.Author.Id) .OrderByDescending(c => c.Sum(g => g.Total)); List <GitHubGlobalContributorModel> temp = new List <GitHubGlobalContributorModel>(); foreach (var group in filteredContributors) { var contributor = new GitHubGlobalContributorModel(group); if (contributor.TotalCommits > 0) { temp.Add(contributor); } } return(temp); }, TimeSpan.FromDays(1)); model.Contributors = contributors; } catch (Exception ex) { LogHelper.Error <IGitHubContributorsModel>("Could not get GitHub Contributors", ex); } return(PartialView("~/Views/Partials/Home/GitHubContributors.cshtml", model)); }
public void SetUp() { mockGitHubManager = new Mock <IGitHubManager>(); gitHubController = new GitHubController(mockGitHubManager.Object); }
public void SetUp() { _mockRepoService = new Mock <IGitHubRepoService>(); _mockCommitService = new Mock <IGitHubCommitService>(); _gitHubController = new GitHubController(_mockRepoService.Object, _mockCommitService.Object); }
public TestLoadLanguages() { _service = new GitHubServiceFake(); _controller = new GitHubController(null, _service); }