public async void ReturnAssetGivenValidArgs() { // arrange const string projectName = "asdf"; const string buildId = "qwer"; const string asset = "zxcv"; const string expected = "hjkl"; JenkinsSettings settings = new JenkinsSettings(); settings.HostURL = "http://example.org"; var mockHttp = new MockHttpMessageHandler(); mockHttp.When($"{settings.HostURL}/job/{projectName}/{buildId}/{asset}") .Respond("application/octet-stream", expected); HttpClient httpClient = new HttpClient(mockHttp); JenkinsApiClient jenkinsApiClient = new JenkinsApiClient(settings, httpClient); // act var assetContent = await jenkinsApiClient.GetAsset(projectName, buildId, asset); // assert var actual = System.Text.Encoding.UTF8.GetString(assetContent); Assert.Equal(expected, actual); }
public async Task <IActionResult> Get(string projectName, string buildId, string asset) { logger.LogInformation($"Serving asset {asset} for route {Request.Path} [{projectName} and {buildId}]"); byte[] content = await apiClient.GetAsset(projectName, buildId, asset); return(File(content, GetContentType(asset))); }