public async void ReturnProjectStatusGivenValidArgs() { // arrange const string projectName = "asdf"; const string expected = "{'name' : 'Test McGee'}"; JenkinsSettings settings = new JenkinsSettings(); settings.HostURL = "http://example.org"; var mockHttp = new MockHttpMessageHandler(); mockHttp.When($"{settings.HostURL}/job/{projectName}/api/json?depth=1") .Respond("application/json", expected); HttpClient httpClient = new HttpClient(mockHttp); JenkinsApiClient jenkinsApiClient = new JenkinsApiClient(settings, httpClient); // act var jsonObject = await jenkinsApiClient.GetProjectStatus(projectName, 1); // assert var actual = JsonConvert.SerializeObject(jsonObject); Assert.Equal(FormatJson(expected), FormatJson(actual)); }
public async Task <IActionResult> Get(string projectName) { logger.LogInformation($"Serving badge for route {Request.Path} [{projectName}]"); var projectStatus = await apiClient.GetProjectStatus(projectName); int?coverage = ExtractCoverageFromProjectStatus(projectStatus); var badgeName = GetBadgeNameForCoverage(coverage); return(new FileStreamResult(new FileStream($"images/badges/{badgeName}", FileMode.Open), "image/svg+xml")); }