Преглед изворни кода

Create integration tests for the endpoints in BrandingService

Mark Monteiro пре 5 година
родитељ
комит
e43e6af405
1 измењених фајлова са 52 додато и 0 уклоњено
  1. 52 0
      tests/MediaBrowser.Api.Tests/BrandingServiceTests.cs

+ 52 - 0
tests/MediaBrowser.Api.Tests/BrandingServiceTests.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Text.Json;
+using System.Threading.Tasks;
+using Jellyfin.Server;
+using MediaBrowser.Model.Branding;
+using Microsoft.AspNetCore.Mvc.Testing;
+using Xunit;
+
+namespace MediaBrowser.Api.Tests
+{
+    public sealed class BrandingServiceTests : IClassFixture<JellyfinApplicationFactory>
+    {
+        private readonly JellyfinApplicationFactory _factory;
+
+        public BrandingServiceTests(JellyfinApplicationFactory factory)
+        {
+            _factory = factory;
+        }
+
+        [Fact]
+        public async Task GetConfiguration_ReturnsCorrectResponse()
+        {
+            // Arrange
+            var client = _factory.CreateClient();
+
+            // Act
+            var response = await client.GetAsync("/Branding/Configuration");
+
+            // Assert
+            response.EnsureSuccessStatusCode();
+            Assert.Equal("application/json; charset=utf-8", response.Content.Headers.ContentType.ToString());
+            var responseBody = await response.Content.ReadAsStreamAsync();
+            _ = await JsonSerializer.DeserializeAsync<BrandingOptions>(responseBody);
+        }
+
+        [Theory]
+        [InlineData("/Branding/Css")]
+        [InlineData("/Branding/Css.css")]
+        public async Task GetCss_ReturnsCorrectResponse(string url)
+        {
+            // Arrange
+            var client = _factory.CreateClient();
+
+            // Act
+            var response = await client.GetAsync(url);
+
+            // Assert
+            response.EnsureSuccessStatusCode();
+            Assert.Equal("text/css", response.Content.Headers.ContentType.ToString());
+        }
+    }
+}