From 01e7d37713752aec4469a3cd50c5693ddcbdc1c3 Mon Sep 17 00:00:00 2001 From: ajp_anton Date: Wed, 15 Jul 2026 22:48:03 +0000 Subject: [PATCH] Add provider HTTP classification tests --- .../ProviderHttpTests.cs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/Jellyfin.Plugin.Multilang.Tests/ProviderHttpTests.cs diff --git a/tests/Jellyfin.Plugin.Multilang.Tests/ProviderHttpTests.cs b/tests/Jellyfin.Plugin.Multilang.Tests/ProviderHttpTests.cs new file mode 100644 index 0000000..0e98338 --- /dev/null +++ b/tests/Jellyfin.Plugin.Multilang.Tests/ProviderHttpTests.cs @@ -0,0 +1,36 @@ +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)); + } +}