using System.Net; using System.Net.Http.Json; namespace TestWeb.Tests; using Core.Vehicles; public class VehiclesModuleTests(TestFixture fixture) : IClassFixture { private readonly HttpClient client = fixture.Client; [Fact] public async Task Base() { // Create var createRequest = new CreateVehicleEndpoint.Request("Test make", "Test model"); var createCall = await client.PostAsJsonAsync( VehiclesModule.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( VehiclesModule.Prefix, TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, getListCall.StatusCode); var getCall = await client.GetAsync( $"{VehiclesModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, getCall.StatusCode); // Update var updateRequest = new UpdateVehicleEndpoint.Request("Test make update", "Test model update"); var updateCall = await client.PutAsJsonAsync( $"{VehiclesModule.Prefix}/{createResponse.Id}", updateRequest, cancellationToken: TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, updateCall.StatusCode); // Delete var deleteCall = await client.DeleteAsync( $"{VehiclesModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.OK, deleteCall.StatusCode); // Not found var deleteCallNotFound = await client.DeleteAsync( $"{VehiclesModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.NotFound, deleteCallNotFound.StatusCode); var getCallNotFound = await client.GetAsync( $"{VehiclesModule.Prefix}/{createResponse.Id}", TestContext.Current.CancellationToken ); Assert.Equal(HttpStatusCode.NotFound, getCallNotFound.StatusCode); } }