using System.Net; using System.Net.Http.Json; using GroundsForSupport.API.Tests.Integration.Infra; namespace GroundsForSupport.API.Tests.Integration; public sealed class PaymentTests(TestApi api) : IClassFixture { private readonly TestApi _api = api; [Fact] public async Task CreatePaymentIntent_WhenGivenInvalidAmount_ItShouldReturnBadRequest() { var client = _api.CreateClient(); var request = new { amount = 0, email = string.Empty, }; var response = await client.PostAsJsonAsync("/payments/create-intent", request, TestContext.Current.CancellationToken); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); } [Fact] public async Task CreatePaymentIntent_WhenGivenInvalidEmail_ItShouldReturnBadRequest() { var client = _api.CreateClient(); var request = new { amount = 5000, email = "invalid-email", }; var response = await client.PostAsJsonAsync("/payments/create-intent", request, TestContext.Current.CancellationToken); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); } [Fact] public async Task CreatePaymentIntent_WhenGivenValidRequest_ItShouldReturnCreated() { var client = _api.CreateClient(); var request = new { name = "Test User", amount = 5000, email = "test@test.com", }; var response = await client.PostAsJsonAsync("/payments/create-intent", request, TestContext.Current.CancellationToken); response.StatusCode.Should().Be(HttpStatusCode.OK); } }