116 lines
3.7 KiB
C#
116 lines
3.7 KiB
C#
using System.IdentityModel.Tokens.Jwt;
|
|
using System.Net;
|
|
using System.Net.Http.Json;
|
|
using System.Security.Claims;
|
|
using System.Text.Json;
|
|
|
|
using BrokerCore.ApiModels;
|
|
using BrokerCore.Common;
|
|
using BrokerCore.DbEntity;
|
|
using BrokerCore.Services;
|
|
|
|
using BrokerTest.Helper;
|
|
|
|
using Xunit.Abstractions;
|
|
|
|
namespace BrokerTest.Controllers;
|
|
|
|
public class QaCurrencyControllerTests
|
|
{
|
|
private readonly ITestOutputHelper m_test_output_helper;
|
|
|
|
public QaCurrencyControllerTests(ITestOutputHelper testOutputHelper)
|
|
{
|
|
m_test_output_helper = testOutputHelper;
|
|
}
|
|
// private readonly BrokerTestServer m_server = new BrokerTestServer();
|
|
|
|
public HttpClient getTestClient()
|
|
{
|
|
return new HttpClient { BaseAddress = new Uri("https://qa.planethub.caliverse.io:12000") };
|
|
}
|
|
|
|
[Fact]
|
|
public async Task initializeAsync()
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
|
|
[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);
|
|
if (response.StatusCode == HttpStatusCode.BadRequest)
|
|
{
|
|
var response_body_error = await response.Content.ReadFromJsonAsync<ApiErrorResponse>();
|
|
Assert.NotNull(response_body_error);
|
|
m_test_output_helper.WriteLine(response_body_error.ErrorMessage);
|
|
// Assert.Contains("Insufficient balance", response_body_error);
|
|
return;
|
|
}
|
|
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
|
|
}
|
|
}
|
|
}
|