namespace Basket.FunctionalTests; public class BasketScenarios : BasketScenarioBase { [Fact] public async Task Post_basket_and_response_ok_status_code() { using var server = CreateServer(); var content = new StringContent(BuildBasket(), UTF8Encoding.UTF8, "application/json"); var uri = "/api/v1/basket/"; var response = await server.CreateClient().PostAsync(uri, content); response.EnsureSuccessStatusCode(); } [Fact] public async Task Get_basket_and_response_ok_status_code() { using var server = CreateServer(); var response = await server.CreateClient() .GetAsync(Get.GetBasket(1)); response.EnsureSuccessStatusCode(); } [Fact] public async Task Send_Checkout_basket_and_response_ok_status_code() { using var server = CreateServer(); var contentBasket = new StringContent(BuildBasket(), UTF8Encoding.UTF8, "application/json"); await server.CreateClient() .PostAsync(Post.Basket, contentBasket); var contentCheckout = new StringContent(BuildCheckout(), UTF8Encoding.UTF8, "application/json") { Headers = { { "x-requestid", Guid.NewGuid().ToString() } } }; var response = await server.CreateClient() .PostAsync(Post.CheckoutOrder, contentCheckout); response.EnsureSuccessStatusCode(); } string BuildBasket() { var order = new CustomerBasket(AutoAuthorizeMiddleware.IDENTITY_ID); order.Items.Add(new BasketItem { ProductId = 1, ProductName = ".NET Bot Black Hoodie", UnitPrice = 10, Quantity = 1 }); return JsonSerializer.Serialize(order); } string BuildCheckout() { var checkoutBasket = new { City = "city", Street = "street", State = "state", Country = "coutry", ZipCode = "zipcode", CardNumber = "1234567890123456", CardHolderName = "CardHolderName", CardExpiration = DateTime.UtcNow.AddDays(1), CardSecurityNumber = "123", CardTypeId = 1, Buyer = "Buyer", RequestId = Guid.NewGuid() }; return JsonSerializer.Serialize(checkoutBasket); } }