using System.Collections.Generic; using System.Net; using System.Net.Http.Headers; using System.Net.Http.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.Testing; using TestWeb.Infra; using TestWeb.Core.Jobs; namespace TestWeb.Tests.Core.Jobs; public class JobModuleTests : IClassFixture { private readonly HttpClient client; public JobModuleTests(TestFixture fixture) { client = fixture.Client; } [Fact] public async Task Base() { // Create var createRequest = new CreateJobEndpoint.Request( "Client name", "Pickup", "Dropoff" ); var createCall = await client.PostAsJsonAsync( JobModule.Prefix, createRequest, cancellationToken: TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, createCall.StatusCode); var createResponse = await createCall.Content .ReadFromJsonAsync( cancellationToken: TestContext.Current.CancellationToken ); Assert.NotNull(createResponse); // Get var getListCall = await client.GetAsync( JobModule.Prefix, TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, getListCall.StatusCode); var getCall = await client.GetAsync( $"{JobModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, getCall.StatusCode); // Update var updateRequest = new UpdateJobEndpoint.Request( "Client name", "Pickup update", "Dropoff update"); var updateCall = await client.PutAsJsonAsync( $"{JobModule.Prefix}/{createResponse.Id}", updateRequest, cancellationToken: TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, updateCall.StatusCode); // Delete var deleteCall = await client.DeleteAsync( $"{JobModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, deleteCall.StatusCode); // Not found var deleteCallNotFound = await client.DeleteAsync( $"{JobModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.NotFound, deleteCallNotFound.StatusCode); var getCallNotFound = await client.GetAsync( $"{JobModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.NotFound, getCallNotFound.StatusCode); } }