using System.Net.Http.Json; using BrokerApiCore; using BrokerTest.Helper; namespace BrokerTest.Controllers; public class CurrencyControllerTests { private readonly BrokerTestServer m_server = new BrokerTestServer(); [Fact] public async Task initializeAsync() { await Task.CompletedTask; } private HttpClient getTestClient() { return m_server.getTestClient(); } [Fact] public async Task Auth_ValidRequest_ReturnsOkWithAccessToken() { // Arrange const string planet_id = "new_earth"; const string planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv"; var planet_token = string.Empty; var order_id = string.Empty; { var client = getTestClient(); var request = new PlanetAuthRequest { PlanetId = planet_id, PlanetSecretKey = planet_secret_key }; // Act var response = await client.PostAsJsonAsync("/api/v1/planet/auth", request); // Assert response.EnsureSuccessStatusCode(); var response_body = await response.Content.ReadFromJsonAsync(); Assert.NotNull(response_body); planet_token = response_body.AccessToken; } { var client = getTestClient(); var request = new ExchangeOrderRequest { UserGuid = "1052b08b52ef4d69a27ee1f40911a72f", Sapphire = 10, Emerald = 10 }; client.DefaultRequestHeaders.Add("Authorization", $"Bearer {planet_token}"); var response = await client.PostAsJsonAsync("/api/v1/exchange/order/create", request); response.EnsureSuccessStatusCode(); var response_body = await response.Content.ReadFromJsonAsync(); Assert.NotNull(response_body); Assert.NotNull(response_body.OrderId); order_id = response_body.OrderId; // Assert } //UserGuid:1052b08b52ef4d69a27ee1f40911a72f { var client = getTestClient(); var request = new ExchangeOrderListRequest { UserGuid = "1052b08b52ef4d69a27ee1f40911a72f", Option = FindOption.All }; client.DefaultRequestHeaders.Add("Authorization", $"Bearer {planet_token}"); var response = await client.PostAsJsonAsync("/api/v1/exchange/order/list", request); response.EnsureSuccessStatusCode(); var response_body = await response.Content.ReadFromJsonAsync(); Assert.NotNull(response_body); Assert.NotNull(response_body.Orders); // Assert } { var client = getTestClient(); var request = new ExchangeOrderCompleteRequest { UserGuid = "1052b08b52ef4d69a27ee1f40911a72f", OrderId = order_id }; client.DefaultRequestHeaders.Add("Authorization", $"Bearer {planet_token}"); var response = await client.PostAsJsonAsync("/api/v1/exchange/order/complete", request); response.EnsureSuccessStatusCode(); var response_body = await response.Content.ReadFromJsonAsync(); Assert.NotNull(response_body); Assert.NotNull(response_body.OrderId); Assert.Equal(order_id, response_body.OrderId); Assert.Equal(ExchangeOrderStatus.Completed, response_body.Status); // Assert } } }