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"));
        }