using Microsoft.AspNetCore.Mvc.Testing; using Xunit; using System.Text.Json; namespace DiunaBI.Tests; public class ApiConnectionTests : IClassFixture> { private readonly WebApplicationFactory _factory; public ApiConnectionTests(WebApplicationFactory factory) { _factory = factory; } [Fact] public async Task PingToApi() { var client = _factory.CreateClient(); var response = await client.GetAsync("/api/Tests/Ping"); var content = await response.Content.ReadAsStringAsync(); var statusCode = (int)response.StatusCode; Assert.Equal(200, statusCode); Assert.Equal("Pong", content); } [Fact] [Trait("Category", "LocalOnly")] public async Task DatabaseConnectionTest() { var client = _factory.CreateClient(); var response = await client.GetAsync("/api/Layers?start=0&limit=1"); var content = await response.Content.ReadAsStringAsync(); var statusCode = (int)response.StatusCode; Assert.Equal(200, statusCode); var layers = JsonSerializer.Deserialize(content); Assert.NotNull(layers); } [Fact] public async Task LoadPLuginsTest() { var client = _factory.CreateClient(); var response = await client.GetAsync("/api/Tests/Plugins"); var content = await response.Content.ReadAsStringAsync(); var statusCode = (int)response.StatusCode; Assert.Equal(200, statusCode); var pluginsCount = JsonSerializer.Deserialize(content); Assert.True(pluginsCount > 0, "Expected plugins count to be greater than 0"); } }