using System.Net; using Jellyfin.Plugin.Multilang.Services.Providers; namespace Jellyfin.Plugin.Multilang.Tests; public sealed class ProviderHttpTests { [Theory] [InlineData(HttpStatusCode.TooManyRequests)] [InlineData(HttpStatusCode.RequestTimeout)] [InlineData(HttpStatusCode.InternalServerError)] [InlineData(HttpStatusCode.BadGateway)] [InlineData(HttpStatusCode.ServiceUnavailable)] [InlineData(HttpStatusCode.GatewayTimeout)] public void ClassifyMarksRateLimitTimeoutAndServerErrorsRetryable(HttpStatusCode statusCode) { Assert.Equal(ProviderFailureKind.Retryable, ProviderHttp.Classify(statusCode)); } [Theory] [InlineData(HttpStatusCode.BadRequest)] [InlineData(HttpStatusCode.Unauthorized)] [InlineData(HttpStatusCode.Forbidden)] [InlineData(HttpStatusCode.NotFound)] [InlineData(HttpStatusCode.UnprocessableEntity)] public void ClassifyMarksClientErrorsTerminal(HttpStatusCode statusCode) { Assert.Equal(ProviderFailureKind.Terminal, ProviderHttp.Classify(statusCode)); } [Fact] public void ClassifyMarksSuccessTerminal() { Assert.Equal(ProviderFailureKind.Terminal, ProviderHttp.Classify(HttpStatusCode.OK)); } }