public async void ReturnBuildStatusGivenValidArgs() { // arrange const string projectName = "asdf"; const string buildId = "qwer"; 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}/{buildId}/api/json?depth=1") .Respond("application/json", expected); HttpClient httpClient = new HttpClient(mockHttp); JenkinsApiClient jenkinsApiClient = new JenkinsApiClient(settings, httpClient); // act var jsonObject = await jenkinsApiClient.GetBuildStatus(projectName, buildId, 1); // assert var actual = JsonConvert.SerializeObject(jsonObject); Assert.Equal(FormatJson(expected), FormatJson(actual)); }
public async Task <IActionResult> Get(string projectName, string buildId) { // last path segment is optional var actualBuildId = buildId ?? JenkinsApiClient.LastBuildId; logger.LogInformation($"Serving badge for route {Request.Path} [{projectName} and {actualBuildId}]"); var buildStatus = await apiClient.GetBuildStatus(projectName, actualBuildId); string result = ExtractResultFromBuildStatus(buildStatus); var badgeName = GetBadgeNameForBuildResult(result); return(new FileStreamResult(new FileStream($"images/badges/{badgeName}", FileMode.Open), "image/svg+xml")); }
public async Task <IActionResult> Get(string projectName, string buildId, string caption = "tests") { // last path segment is optional var actualBuildId = buildId ?? JenkinsApiClient.LastBuildId; logger.LogInformation($"Serving badge for route {Request.Path} [{projectName} and {actualBuildId}]"); var buildStatus = await apiClient.GetBuildStatus(projectName, actualBuildId); Tuple <int, int> testResults = ExtractTestResultsFromBuildStatus(buildStatus); byte[] content = await GetBadgeContentForTestResults(testResults, caption); return(File(content, "image/svg+xml")); }