Files
caliverse_server/BrokerApiTest/ControllerTests/CurrencyControllerTests.cs
2025-05-01 07:23:28 +09:00

91 lines
2.9 KiB
C#

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<PlanetAuthResponse>();
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<ExchangeOrderResponse>();
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<ExchangeOrderListResponse>();
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<ExchangeOrderCompleteResponse>();
Assert.NotNull(response_body);
Assert.NotNull(response_body.OrderId);
Assert.Equal(order_id, response_body.OrderId);
Assert.Equal(ExchangeOrderStatus.Completed, response_body.Status);
// Assert
}
}
}