public async Task HttpRetryHandler_HandlesInvalidProtocol() { // Arrange var server = new TcpListenerServer { Mode = TestServerMode.ServerProtocolViolation }; // Act & Assert var exception = await ThrowsException <HttpRequestException>(server); #if IS_CORECLR if (!RuntimeEnvironmentHelper.IsWindows) { Assert.Null(exception.InnerException); Assert.Equal("The server returned an invalid or unrecognized response.", exception.Message); } else { Assert.NotNull(exception.InnerException); Assert.Equal("The server returned an invalid or unrecognized response", exception.InnerException.Message); } #else var innerException = Assert.IsType <WebException>(exception.InnerException); Assert.Equal(WebExceptionStatus.ServerProtocolViolation, innerException.Status); #endif }
public async Task HttpSource_TimesOutDownload() { // Arrange using (var td = TestDirectory.Create()) { var expectedMilliseconds = 250; var server = new TcpListenerServer { Mode = TestServerMode.SlowResponseBody, SleepDuration = TimeSpan.FromSeconds(10) }; var packageSource = new PackageSource(FakeSource); var handler = new HttpClientHandler(); var handlerResource = new HttpHandlerResourceV3(handler, handler); var httpSource = new HttpSource( packageSource, () => Task.FromResult((HttpHandlerResource)handlerResource), NullThrottle.Instance) { HttpCacheDirectory = td }; var logger = new TestLogger(); // Act & Assert var actual = await Assert.ThrowsAsync <IOException>(() => server.ExecuteAsync(uri => httpSource.GetJObjectAsync( new HttpSourceRequest(uri, logger) { DownloadTimeout = TimeSpan.FromMilliseconds(expectedMilliseconds) }, logger, CancellationToken.None))); Assert.IsType <TimeoutException>(actual.InnerException); Assert.EndsWith( $"timed out because no data was received for {expectedMilliseconds}ms.", actual.Message); } }
public async Task HttpRetryHandler_HandlesInvalidProtocol() { // Arrange var server = new TcpListenerServer { Mode = TestServerMode.ServerProtocolViolation }; // Act & Assert var exception = await ThrowsException <HttpRequestException>(server); #if IS_CORECLR Assert.Null(exception.InnerException); #if (NETCORE3_0 || NETCORE5_0) Assert.Equal("Received an invalid status code: 'BAD'.", exception.Message); #else Assert.Equal("The server returned an invalid or unrecognized response.", exception.Message); #endif #else var innerException = Assert.IsType <WebException>(exception.InnerException); Assert.Equal(WebExceptionStatus.ServerProtocolViolation, innerException.Status); #endif }