mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-06 07:16:09 +00:00
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Octokit.Internal;
|
|
using Octokit.Tests.Integration;
|
|
using Xunit;
|
|
|
|
public class HttpClientAdapterTests
|
|
{
|
|
public class TheSendAsyncMethod
|
|
{
|
|
[IntegrationTest]
|
|
public async Task CanDownloadImage()
|
|
{
|
|
var httpClient = new HttpClientAdapter(HttpMessageHandlerFactory.CreateDefault);
|
|
var request = new Request
|
|
{
|
|
BaseAddress = new Uri("https://github.global.ssl.fastly.net/", UriKind.Absolute),
|
|
Endpoint = new Uri("/images/icons/emoji/poop.png?v=5", UriKind.RelativeOrAbsolute),
|
|
Method = HttpMethod.Get
|
|
};
|
|
|
|
var response = await httpClient.Send(request, CancellationToken.None);
|
|
|
|
// Spot check some of dem bytes.
|
|
var imageBytes = (byte[])response.Body;
|
|
Assert.Equal(137, imageBytes[0]);
|
|
Assert.Equal(80, imageBytes[1]);
|
|
Assert.Equal(78, imageBytes[2]);
|
|
Assert.Equal(130, imageBytes.Last());
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanCancelARequest()
|
|
{
|
|
var httpClient = new HttpClientAdapter(HttpMessageHandlerFactory.CreateDefault);
|
|
var request = new Request
|
|
{
|
|
BaseAddress = new Uri("https://github.global.ssl.fastly.net/", UriKind.Absolute),
|
|
Endpoint = new Uri("/images/icons/emoji/poop.png?v=5", UriKind.RelativeOrAbsolute),
|
|
Method = HttpMethod.Get,
|
|
Timeout = TimeSpan.FromMilliseconds(10)
|
|
};
|
|
|
|
var response = httpClient.Send(request, CancellationToken.None);
|
|
|
|
await Task.Delay(TimeSpan.FromSeconds(2));
|
|
|
|
Assert.True(response.IsCanceled);
|
|
}
|
|
}
|
|
}
|