초기커밋
This commit is contained in:
163
BrokerApiTest/ControllerTests/AccontControllerTests.cs
Normal file
163
BrokerApiTest/ControllerTests/AccontControllerTests.cs
Normal file
@@ -0,0 +1,163 @@
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
using System.Net;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
|
||||
using BrokerCore.ApiModels;
|
||||
using Helper;
|
||||
using Xunit;
|
||||
|
||||
public class AccountControllerTests
|
||||
{
|
||||
private readonly BrokerTestServer m_server = new BrokerTestServer();
|
||||
|
||||
[Fact]
|
||||
public async Task initializeAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Login_ValidRequest_ReturnsOkWithLoginResponse()
|
||||
{
|
||||
// Arrange
|
||||
const string validToken = "valid_web_portal_token";
|
||||
const string userGuid = "test_user_guid";
|
||||
const string nickname = "test_nickname";
|
||||
|
||||
var client = m_server.getTestClient();
|
||||
Assert.NotNull(client);
|
||||
var request = new LoginRequest { WebPortalToken = validToken };
|
||||
// Act
|
||||
var response = await client.PostAsJsonAsync("/api/v1/account/login", request);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
|
||||
// ReadFromJsonAsync 사용 시, 올바른 options 주입
|
||||
var login_response = await response.Content.ReadFromJsonAsync<LoginResponse>();
|
||||
|
||||
Assert.NotNull(login_response);
|
||||
Assert.Equal(userGuid, login_response.UserGuid);
|
||||
Assert.Equal(nickname, login_response.Nickname);
|
||||
|
||||
// mockUserAuthService.Verify(m => m.authByWebPortalToken(validToken), Times.Once); //정확히 한번 호출되었는지 확인
|
||||
// mockUserAuthService.VerifyGet(x=>x.UserGuid, Times.AtLeastOnce); //최소 한번 호출되었는지 확인
|
||||
// mockUserAuthService.VerifyGet(x=>x.Nickname, Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
// [Fact]
|
||||
// public async Task Login_InvalidRequest_EmptyToken_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = _factory.CreateClient();
|
||||
// var request = new LoginRequest { WebPortalToken = "" }; // Empty token
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/account/login", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
//
|
||||
// //응답 내용 확인 (선택)
|
||||
// var errorResponse = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(_jsonOptions);
|
||||
// Assert.NotNull(errorResponse);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidRequest, errorResponse.Code);
|
||||
// Assert.Contains("WebPortalToken does not exist", errorResponse.Message);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public async Task Login_InvalidRequest_NullToken_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = _factory.CreateClient();
|
||||
// var request = new LoginRequest { WebPortalToken = null }; // null token
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/account/login", request);
|
||||
//
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
//
|
||||
// //응답 내용 확인 (선택)
|
||||
// var errorResponse = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(_jsonOptions);
|
||||
// Assert.NotNull(errorResponse);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidRequest, errorResponse.Code);
|
||||
// Assert.Contains("WebPortalToken does not exist", errorResponse.Message);
|
||||
// }
|
||||
// [Fact]
|
||||
// public async Task Login_InvalidRequest_NullRequest_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = _factory.CreateClient();
|
||||
// LoginRequest? request = null; // Null request
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/account/login", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
//
|
||||
// //응답 내용 확인 (선택)
|
||||
// var errorResponse = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(_jsonOptions);
|
||||
// Assert.NotNull(errorResponse);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidRequest, errorResponse.Code);
|
||||
// Assert.Contains("Request is empty", errorResponse.Message);
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public async Task Login_AuthServiceReturnsFail_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// const string invalidToken = "invalid_token";
|
||||
//
|
||||
// // Mock UserAuthService
|
||||
// var mockUserAuthService = new Mock<UserAuthService>(MockBehavior.Strict, null, null,null,null,null);
|
||||
// mockUserAuthService.Setup(m => m.authByWebPortalToken(invalidToken))
|
||||
// .ReturnsAsync(Result.Fail(ServerErrorCode.InvalidToken, "Invalid token"));
|
||||
//
|
||||
//
|
||||
// var client = _factory.WithWebHostBuilder(builder =>
|
||||
// {
|
||||
// builder.ConfigureTestServices(services =>
|
||||
// {
|
||||
// services.AddScoped<UserAuthService>(_ => mockUserAuthService.Object);
|
||||
// });
|
||||
// }).CreateClient();
|
||||
//
|
||||
//
|
||||
// var request = new LoginRequest { WebPortalToken = invalidToken };
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/account/login", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
// var errorResponse = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(_jsonOptions);
|
||||
// Assert.NotNull(errorResponse);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidToken, errorResponse.Code);
|
||||
// Assert.Equal("Invalid token", errorResponse.Message);
|
||||
//
|
||||
// mockUserAuthService.Verify(m=>m.authByWebPortalToken(invalidToken), Times.Once);
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public async Task Dummy_ValidRequest_ReturnsOk()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = _factory.CreateClient();
|
||||
// var request = new DummyRequest { Dummy = "test" };
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/account/dummy", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
// var dummyResponse = await response.Content.ReadFromJsonAsync<DummyResponse>();
|
||||
// Assert.NotNull(dummyResponse);
|
||||
// Assert.Equal("test", dummyResponse.Dummy);
|
||||
// }
|
||||
}
|
||||
99
BrokerApiTest/ControllerTests/CurrencyControllerTests.cs
Normal file
99
BrokerApiTest/ControllerTests/CurrencyControllerTests.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
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;
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
98
BrokerApiTest/ControllerTests/DevCurrencyControllerTests.cs
Normal file
98
BrokerApiTest/ControllerTests/DevCurrencyControllerTests.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
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;
|
||||
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
public class DevCurrencyControllerTests
|
||||
{
|
||||
// private readonly BrokerTestServer m_server = new BrokerTestServer();
|
||||
|
||||
public HttpClient getTestClient()
|
||||
{
|
||||
return new HttpClient { BaseAddress = new Uri("https://dev.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);
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
179
BrokerApiTest/ControllerTests/Dev_PlanetUserControllerTests.cs
Normal file
179
BrokerApiTest/ControllerTests/Dev_PlanetUserControllerTests.cs
Normal file
@@ -0,0 +1,179 @@
|
||||
// using System.Net;
|
||||
// using System.Net.Http.Json;
|
||||
//
|
||||
// using BrokerCore.ApiModels;
|
||||
// using BrokerCore.DbEntity;
|
||||
//
|
||||
// using BrokerTest.Helper;
|
||||
//
|
||||
// using ServerCommon;
|
||||
//
|
||||
// using Xunit.Abstractions;
|
||||
//
|
||||
// namespace BrokerTest.Controllers;
|
||||
//
|
||||
// public class DevPlanetUserControllerTests : IAsyncLifetime
|
||||
// {
|
||||
// private readonly ITestOutputHelper m_test_output_helper;
|
||||
// const string m_planet_id = "new_earth";
|
||||
// const string m_planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv";
|
||||
// const string m_user_guid = "1052b08b52ef4d69a27ee1f40911a72f";
|
||||
// private string m_planet_token = string.Empty;
|
||||
// const string m_remote_server_url = "https://dev.planethub.caliverse.io:12000";
|
||||
// private readonly MetaTableTestHelper m_meta_table_test_helper = new();
|
||||
//
|
||||
// private readonly IBrokerTestServer m_server = new BrokerTestRemoteServer(m_remote_server_url);
|
||||
//
|
||||
// public DevPlanetUserControllerTests(ITestOutputHelper testOutputHelper)
|
||||
// {
|
||||
// m_test_output_helper = testOutputHelper;
|
||||
// }
|
||||
//
|
||||
// private HttpClient getTestClient()
|
||||
// {
|
||||
// var client = m_server.getTestClient();
|
||||
// if (m_planet_token != string.Empty)
|
||||
// {
|
||||
// client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
// }
|
||||
//
|
||||
// return client;
|
||||
// }
|
||||
//
|
||||
// private HttpClient getTestClientWithBearer()
|
||||
// {
|
||||
// var client = m_server.getTestClient();
|
||||
// if (m_planet_token != string.Empty)
|
||||
// {
|
||||
// client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
// }
|
||||
//
|
||||
// return client;
|
||||
// }
|
||||
//
|
||||
// public async Task InitializeAsync()
|
||||
// {
|
||||
// m_meta_table_test_helper.load();
|
||||
//
|
||||
// // Arrange
|
||||
// var client = getTestClient();
|
||||
// var request = new PlanetAuthRequest { PlanetId = m_planet_id, PlanetSecretKey = m_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);
|
||||
// Assert.NotEmpty(response_body.AccessToken);
|
||||
// m_planet_token = response_body.AccessToken;
|
||||
// }
|
||||
//
|
||||
// public async Task DisposeAsync()
|
||||
// {
|
||||
// await Task.CompletedTask;
|
||||
// }
|
||||
//
|
||||
// private bool checkError(HttpResponseMessage responseMessage)
|
||||
// {
|
||||
// if (responseMessage.StatusCode != HttpStatusCode.OK)
|
||||
// {
|
||||
// var error_body = responseMessage.Content.ReadFromJsonAsync<ApiErrorResponse>().Result;
|
||||
// Assert.NotNull(error_body);
|
||||
// m_test_output_helper.WriteLine(error_body.ErrorMessage ?? string.Empty);
|
||||
// Assert.True(false);
|
||||
// }
|
||||
//
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// [Fact(DisplayName = "아이템 교환 주문 컨트롤러 테스트 모든 Meta")]
|
||||
// public async Task allMetaTests()
|
||||
// {
|
||||
// var meta = m_meta_table_test_helper.getMetaTableRef();
|
||||
// var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
// .Select(x =>
|
||||
// string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
// StringComparison.CurrentCultureIgnoreCase)
|
||||
// ? (x.ID, Random.Shared.Next(10, 201))
|
||||
// : (x.ID, 1));
|
||||
// foreach (var meta_tuple in meta_tuples)
|
||||
// {
|
||||
// await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private async Task orderTest(string metaId, int metaAmount)
|
||||
// {
|
||||
// string order_id;
|
||||
// {
|
||||
// // Arrange
|
||||
// var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
// var client = getTestClientWithBearer();
|
||||
// var exchange_request = new PlanetItemExchangeRequest
|
||||
// {
|
||||
// SeasonId = "TEST_SEASON_ID",
|
||||
// UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
// };
|
||||
//
|
||||
// // Act
|
||||
// var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
//
|
||||
// // Assert
|
||||
// checkError(exchange_response);
|
||||
// var exchange_response_body =
|
||||
// await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
// Assert.NotNull(exchange_response_body);
|
||||
// Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
// order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
// }
|
||||
// {
|
||||
// // Arrange
|
||||
// var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
// var client = getTestClientWithBearer();
|
||||
// var list_request = new PlanetItemExchangeOrderListRequest
|
||||
// {
|
||||
// UserGuid = m_user_guid, Option = FindOption.All, ExchangeMetaId = metaId,
|
||||
// };
|
||||
//
|
||||
// // Act
|
||||
// var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
// checkError(list_response);
|
||||
//
|
||||
// // Assert
|
||||
// list_response.EnsureSuccessStatusCode();
|
||||
// var list_response_body =
|
||||
// await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
// Assert.NotNull(list_response_body);
|
||||
// Assert.NotNull(list_response_body.Orders);
|
||||
//
|
||||
// var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
// Assert.NotNull(order);
|
||||
// Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
// }
|
||||
// {
|
||||
// // Arrange
|
||||
// var request_uri = "/api/v1/planet/user/exchange/order/complete";
|
||||
// var client = getTestClientWithBearer();
|
||||
//
|
||||
// // Act
|
||||
// var complete_request = new PlanetItemExchangeCompleteRequest
|
||||
// {
|
||||
// UserGuid = m_user_guid, ExchangeOrderId = order_id
|
||||
// };
|
||||
// var complete_response =
|
||||
// await client.PostAsJsonAsync(request_uri, complete_request);
|
||||
// checkError(complete_response);
|
||||
//
|
||||
// // Assert
|
||||
// complete_response.EnsureSuccessStatusCode();
|
||||
// var complete_response_body =
|
||||
// await complete_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
// Assert.NotNull(complete_response_body);
|
||||
// Assert.NotNull(complete_response_body.ExchangeOrder);
|
||||
// Assert.Equal(order_id, complete_response_body.ExchangeOrder.OrderId);
|
||||
// Assert.Equal(ExchangeOrderStatus.Completed, complete_response_body.ExchangeOrder.OrderStatus);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
88
BrokerApiTest/ControllerTests/PlanetControllerTests.cs
Normal file
88
BrokerApiTest/ControllerTests/PlanetControllerTests.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
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.Services;
|
||||
using Helper;
|
||||
using Xunit;
|
||||
|
||||
public class PlanetControllerTests
|
||||
{
|
||||
private readonly BrokerTestServer m_server = new();
|
||||
private readonly JsonSerializerOptions m_json_options = new()
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
[Fact]
|
||||
public async Task Auth_ValidRequest_ReturnsOkWithAccessToken()
|
||||
{
|
||||
// Arrange
|
||||
const string planet_id = "new_earth";
|
||||
const string planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv";
|
||||
|
||||
var client = m_server.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 auth_response = await response.Content.ReadFromJsonAsync<PlanetAuthResponse>(m_json_options);
|
||||
Assert.NotNull(auth_response);
|
||||
var jwt_option = m_server.getRequiredService<JwtOption>();
|
||||
Assert.NotNull(jwt_option);
|
||||
var jwt_service = new JwtParser(jwt_option);
|
||||
var claims = jwt_service.parseToken(auth_response.AccessToken);
|
||||
Assert.NotNull(claims);
|
||||
var id = claims.FindFirstValue(JwtRegisteredClaimNames.Sid);
|
||||
Assert.NotNull(id);
|
||||
Assert.Equal(planet_id, id);
|
||||
Assert.NotNull(auth_response.AccessToken);
|
||||
Assert.NotEqual(auth_response.AccessToken, string.Empty);
|
||||
}
|
||||
|
||||
// [Fact]
|
||||
// public async Task Auth_InvalidRequest_EmptyPlanetId_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = m_server.getTestClient();
|
||||
// var request = new PlanetAuthRequest { PlanetId = "", PlanetSecretKey = "test_secret_key" };
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/planet/auth", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
// var error_response = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(m_json_options);
|
||||
// Assert.NotNull(error_response);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidRequest, error_response.Code);
|
||||
// Assert.Contains("planet id is required", error_response.Message);
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public async Task Auth_InvalidRequest_NullPlanetSecretKey_ReturnsBadRequest()
|
||||
// {
|
||||
// // Arrange
|
||||
// var client = m_server.getTestClient();
|
||||
// var request = new PlanetAuthRequest { PlanetId = "test_planet_id", PlanetSecretKey = null };
|
||||
//
|
||||
// // Act
|
||||
// var response = await client.PostAsJsonAsync("/api/v1/planet/auth", request);
|
||||
//
|
||||
// // Assert
|
||||
// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
// var error_response = await response.Content.ReadFromJsonAsync<ApiErrorResponse>(m_json_options);
|
||||
// Assert.NotNull(error_response);
|
||||
// Assert.Equal((int)ServerErrorCode.InvalidRequest, error_response.Code);
|
||||
// Assert.Contains("planet access key is required", error_response.Message);
|
||||
// }
|
||||
}
|
||||
302
BrokerApiTest/ControllerTests/PlanetUserControllerTests.cs
Normal file
302
BrokerApiTest/ControllerTests/PlanetUserControllerTests.cs
Normal file
@@ -0,0 +1,302 @@
|
||||
using System.Net;
|
||||
using System.Net.Http.Json;
|
||||
|
||||
using BrokerCore.ApiModels;
|
||||
using BrokerCore.DbEntity;
|
||||
|
||||
using BrokerTest.Helper;
|
||||
|
||||
using ServerCommon;
|
||||
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
public class PlanetUserControllerTests : IAsyncLifetime
|
||||
{
|
||||
private readonly ITestOutputHelper m_test_output_helper;
|
||||
// const string m_planet_id = "new_earth";
|
||||
const string m_planet_id = "igm26_iggymob";
|
||||
const string m_planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv";
|
||||
const string m_user_guid = "1052b08b52ef4d69a27ee1f40911a72f"; //park chan heon
|
||||
const string m_account_id = "20462";
|
||||
|
||||
//40dbf485dc5b41508b7d53aa77819201
|
||||
// const string m_account_id = "20437";
|
||||
// const string m_user_guid = "40dbf485dc5b41508b7d53aa77819201";
|
||||
|
||||
private string m_planet_token = string.Empty;
|
||||
private readonly MetaTableTestHelper m_meta_table_test_helper = new();
|
||||
|
||||
// private readonly IBrokerTestServer m_server = new BrokerTestServer();
|
||||
private readonly IBrokerTestServer m_server = new BrokerTestRemoteServer("https://dev.planethub.caliverse.io:12000");
|
||||
|
||||
public PlanetUserControllerTests(ITestOutputHelper testOutputHelper)
|
||||
{
|
||||
m_test_output_helper = testOutputHelper;
|
||||
}
|
||||
|
||||
private HttpClient getTestClient()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
private HttpClient getTestClientWithBearer()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
public async Task InitializeAsync()
|
||||
{
|
||||
m_meta_table_test_helper.load();
|
||||
|
||||
// Arrange
|
||||
var client = getTestClient();
|
||||
var request = new PlanetAuthRequest { PlanetId = m_planet_id, PlanetSecretKey = m_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);
|
||||
Assert.NotEmpty(response_body.AccessToken);
|
||||
m_planet_token = response_body.AccessToken;
|
||||
}
|
||||
|
||||
public async Task DisposeAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
private bool checkError(HttpResponseMessage responseMessage)
|
||||
{
|
||||
if (responseMessage.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
var error_body = responseMessage.Content.ReadFromJsonAsync<ApiErrorResponse>().Result;
|
||||
Assert.NotNull(error_body);
|
||||
m_test_output_helper.WriteLine(error_body.ErrorMessage ?? string.Empty);
|
||||
Assert.True(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "아이템 교환 주문 컨트롤러 테스트 모든 Meta")]
|
||||
public async Task allMetaTests()
|
||||
{
|
||||
MetaTableTestHelper meta_table_test_helper = new();
|
||||
meta_table_test_helper.load();
|
||||
var meta = meta_table_test_helper.getMetaTableRef();
|
||||
Assert.NotNull(meta);
|
||||
var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
.Select(x =>
|
||||
string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
StringComparison.CurrentCultureIgnoreCase)
|
||||
? (x.ID, Random.Shared.Next(10, 201))
|
||||
: (x.ID, 5));
|
||||
// 테스트 이력용
|
||||
foreach (var i in Enumerable.Range(0, 1))
|
||||
{
|
||||
foreach (var meta_tuple in meta_tuples)
|
||||
{
|
||||
await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// [Fact(DisplayName = "아이템 교환 주문 예외테스트")]
|
||||
// public async Task exceptionTests()
|
||||
// {
|
||||
// MetaTableTestHelper meta_table_test_helper = new();
|
||||
// meta_table_test_helper.load();
|
||||
// var meta = meta_table_test_helper.getMetaTableRef();
|
||||
// Assert.NotNull(meta);
|
||||
// var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
// .Select(x =>
|
||||
// string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
// StringComparison.CurrentCultureIgnoreCase)
|
||||
// ? (x.ID, Random.Shared.Next(10, 201))
|
||||
// : (x.ID, 1));
|
||||
// foreach (var meta_tuple in meta_tuples)
|
||||
// {
|
||||
// await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
// }
|
||||
// }
|
||||
|
||||
private async Task dailyAmountExceedError(string metaId, int metaAmount, int totalDailyAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
if (exchange_response.StatusCode == HttpStatusCode.BadRequest)
|
||||
{
|
||||
|
||||
}
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async Task orderTest(string metaId, int metaAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, Option = FindOption.All, ExchangeMetaId = metaId,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = metaId,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = "",
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
|
||||
Assert.True(list_response_body.TotalCount > 0);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/complete";
|
||||
var client = getTestClientWithBearer();
|
||||
|
||||
// Act
|
||||
var complete_request = new PlanetItemExchangeCompleteRequest
|
||||
{
|
||||
UserGuid = m_user_guid, ExchangeOrderId = order_id
|
||||
};
|
||||
var complete_response =
|
||||
await client.PostAsJsonAsync(request_uri, complete_request);
|
||||
checkError(complete_response);
|
||||
|
||||
// Assert
|
||||
complete_response.EnsureSuccessStatusCode();
|
||||
var complete_response_body =
|
||||
await complete_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(complete_response_body);
|
||||
Assert.NotNull(complete_response_body.ExchangeOrder);
|
||||
Assert.Equal(order_id, complete_response_body.ExchangeOrder.OrderId);
|
||||
Assert.Equal(ExchangeOrderStatus.Completed, complete_response_body.ExchangeOrder.OrderStatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
308
BrokerApiTest/ControllerTests/QAPlanetUserControllerTests.cs
Normal file
308
BrokerApiTest/ControllerTests/QAPlanetUserControllerTests.cs
Normal file
@@ -0,0 +1,308 @@
|
||||
using System.Net;
|
||||
using System.Net.Http.Json;
|
||||
|
||||
using BrokerCore.ApiModels;
|
||||
using BrokerCore.DbEntity;
|
||||
|
||||
using BrokerTest.Helper;
|
||||
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
||||
using ServerCommon;
|
||||
using ServerCore;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
public class QaPlanetUserControllerTests : IAsyncLifetime
|
||||
{
|
||||
private readonly ITestOutputHelper m_test_output_helper;
|
||||
// const string m_planet_id = "new_earth";
|
||||
const string m_planet_id = "igm26_iggymob";
|
||||
const string m_planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv";
|
||||
// tenafter71@gmail.com
|
||||
string m_user_guid = "";
|
||||
// tenafter71@gmail.com
|
||||
const string m_account_id = "40305"; // 40305
|
||||
private string m_planet_token = string.Empty;
|
||||
private readonly MetaTableTestHelper m_meta_table_test_helper = new();
|
||||
|
||||
// private readonly IBrokerTestServer m_server = new BrokerTestServer();
|
||||
private readonly IBrokerTestServer m_server = new BrokerTestRemoteServer("https://qa.planethub.caliverse.io:12000");
|
||||
|
||||
public QaPlanetUserControllerTests(ITestOutputHelper testOutputHelper)
|
||||
{
|
||||
m_test_output_helper = testOutputHelper;
|
||||
}
|
||||
|
||||
private HttpClient getTestClient()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
private HttpClient getTestClientWithBearer()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
public async Task InitializeAsync()
|
||||
{
|
||||
if (m_user_guid.isNullOrWhiteSpace())
|
||||
{
|
||||
var helper = new TestUserHelper("QA");
|
||||
m_user_guid = await helper.getUserGuidByAccountId(m_account_id);
|
||||
}
|
||||
Assert.NotEmpty(m_user_guid);
|
||||
|
||||
m_meta_table_test_helper.load();
|
||||
|
||||
// Arrange
|
||||
var client = getTestClient();
|
||||
var request = new PlanetAuthRequest { PlanetId = m_planet_id, PlanetSecretKey = m_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);
|
||||
Assert.NotEmpty(response_body.AccessToken);
|
||||
m_planet_token = response_body.AccessToken;
|
||||
}
|
||||
|
||||
public async Task DisposeAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
private bool checkError(HttpResponseMessage responseMessage)
|
||||
{
|
||||
if (responseMessage.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
var error_body = responseMessage.Content.ReadFromJsonAsync<ApiErrorResponse>().Result;
|
||||
Assert.NotNull(error_body);
|
||||
m_test_output_helper.WriteLine(error_body.ErrorMessage ?? string.Empty);
|
||||
Assert.True(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "아이템 교환 주문 컨트롤러 테스트 모든 Meta")]
|
||||
public async Task allMetaTests()
|
||||
{
|
||||
MetaTableTestHelper meta_table_test_helper = new();
|
||||
meta_table_test_helper.load();
|
||||
var meta = meta_table_test_helper.getMetaTableRef();
|
||||
Assert.NotNull(meta);
|
||||
var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
.Select(x =>
|
||||
string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
StringComparison.CurrentCultureIgnoreCase)
|
||||
? (x.ID, Random.Shared.Next(10, 201))
|
||||
: (x.ID, 1));
|
||||
// 테스트 이력용
|
||||
foreach (var i in Enumerable.Range(0, 1))
|
||||
{
|
||||
foreach (var meta_tuple in meta_tuples)
|
||||
{
|
||||
await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// [Fact(DisplayName = "아이템 교환 주문 예외테스트")]
|
||||
// public async Task exceptionTests()
|
||||
// {
|
||||
// MetaTableTestHelper meta_table_test_helper = new();
|
||||
// meta_table_test_helper.load();
|
||||
// var meta = meta_table_test_helper.getMetaTableRef();
|
||||
// Assert.NotNull(meta);
|
||||
// var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
// .Select(x =>
|
||||
// string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
// StringComparison.CurrentCultureIgnoreCase)
|
||||
// ? (x.ID, Random.Shared.Next(10, 201))
|
||||
// : (x.ID, 1));
|
||||
// foreach (var meta_tuple in meta_tuples)
|
||||
// {
|
||||
// await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
// }
|
||||
// }
|
||||
|
||||
private async Task dailyAmountExceedError(string metaId, int metaAmount, int totalDailyAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
if (exchange_response.StatusCode == HttpStatusCode.BadRequest)
|
||||
{
|
||||
|
||||
}
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async Task orderTest(string metaId, int metaAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, Option = FindOption.All, ExchangeMetaId = metaId,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = metaId,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = "",
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
|
||||
Assert.True(list_response_body.TotalCount > 0);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/complete";
|
||||
var client = getTestClientWithBearer();
|
||||
|
||||
// Act
|
||||
var complete_request = new PlanetItemExchangeCompleteRequest
|
||||
{
|
||||
UserGuid = m_user_guid, ExchangeOrderId = order_id
|
||||
};
|
||||
var complete_response =
|
||||
await client.PostAsJsonAsync(request_uri, complete_request);
|
||||
checkError(complete_response);
|
||||
|
||||
// Assert
|
||||
complete_response.EnsureSuccessStatusCode();
|
||||
var complete_response_body =
|
||||
await complete_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(complete_response_body);
|
||||
Assert.NotNull(complete_response_body.ExchangeOrder);
|
||||
Assert.Equal(order_id, complete_response_body.ExchangeOrder.OrderId);
|
||||
Assert.Equal(ExchangeOrderStatus.Completed, complete_response_body.ExchangeOrder.OrderStatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
115
BrokerApiTest/ControllerTests/QaCurrencyControllerTests.cs
Normal file
115
BrokerApiTest/ControllerTests/QaCurrencyControllerTests.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
308
BrokerApiTest/ControllerTests/StagePlanetUserControllerTests.cs
Normal file
308
BrokerApiTest/ControllerTests/StagePlanetUserControllerTests.cs
Normal file
@@ -0,0 +1,308 @@
|
||||
using System.Net;
|
||||
using System.Net.Http.Json;
|
||||
|
||||
using BrokerCore.ApiModels;
|
||||
using BrokerCore.DbEntity;
|
||||
|
||||
using BrokerTest.Helper;
|
||||
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
||||
using ServerCommon;
|
||||
using ServerCore;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace BrokerTest.Controllers;
|
||||
|
||||
public class StagePlanetUserControllerTests : IAsyncLifetime
|
||||
{
|
||||
private readonly ITestOutputHelper m_test_output_helper;
|
||||
// const string m_planet_id = "new_earth";
|
||||
const string m_planet_id = "igm26_iggymob";
|
||||
const string m_planet_secret_key = "A8h$KmP3sWxZqL5vYnR7uTgBdEjHkMlQoT1wXzCv";
|
||||
// tenafter71@gmail.com
|
||||
string m_user_guid = "";
|
||||
// tenafter71@gmail.com
|
||||
const string m_account_id = "60"; // 40305
|
||||
private string m_planet_token = string.Empty;
|
||||
private readonly MetaTableTestHelper m_meta_table_test_helper = new();
|
||||
|
||||
// private readonly IBrokerTestServer m_server = new BrokerTestServer();
|
||||
private readonly IBrokerTestServer m_server = new BrokerTestRemoteServer("https://qa.planethub.caliverse.io:12000");
|
||||
|
||||
public StagePlanetUserControllerTests(ITestOutputHelper testOutputHelper)
|
||||
{
|
||||
m_test_output_helper = testOutputHelper;
|
||||
}
|
||||
|
||||
private HttpClient getTestClient()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
private HttpClient getTestClientWithBearer()
|
||||
{
|
||||
var client = m_server.getTestClient();
|
||||
if (m_planet_token != string.Empty)
|
||||
{
|
||||
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {m_planet_token}");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
public async Task InitializeAsync()
|
||||
{
|
||||
if (m_user_guid.isNullOrWhiteSpace())
|
||||
{
|
||||
var helper = new TestUserHelper("Stage");
|
||||
m_user_guid = await helper.getUserGuidByAccountId(m_account_id);
|
||||
}
|
||||
Assert.NotEmpty(m_user_guid);
|
||||
|
||||
m_meta_table_test_helper.load();
|
||||
|
||||
// Arrange
|
||||
var client = getTestClient();
|
||||
var request = new PlanetAuthRequest { PlanetId = m_planet_id, PlanetSecretKey = m_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);
|
||||
Assert.NotEmpty(response_body.AccessToken);
|
||||
m_planet_token = response_body.AccessToken;
|
||||
}
|
||||
|
||||
public async Task DisposeAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
private bool checkError(HttpResponseMessage responseMessage)
|
||||
{
|
||||
if (responseMessage.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
var error_body = responseMessage.Content.ReadFromJsonAsync<ApiErrorResponse>().Result;
|
||||
Assert.NotNull(error_body);
|
||||
m_test_output_helper.WriteLine(error_body.ErrorMessage ?? string.Empty);
|
||||
Assert.True(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "아이템 교환 주문 컨트롤러 테스트 모든 Meta")]
|
||||
public async Task allMetaTests()
|
||||
{
|
||||
MetaTableTestHelper meta_table_test_helper = new();
|
||||
meta_table_test_helper.load();
|
||||
var meta = meta_table_test_helper.getMetaTableRef();
|
||||
Assert.NotNull(meta);
|
||||
var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
.Select(x =>
|
||||
string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
StringComparison.CurrentCultureIgnoreCase)
|
||||
? (x.ID, Random.Shared.Next(10, 201))
|
||||
: (x.ID, 1));
|
||||
// 테스트 이력용
|
||||
foreach (var i in Enumerable.Range(0, 1))
|
||||
{
|
||||
foreach (var meta_tuple in meta_tuples)
|
||||
{
|
||||
await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// [Fact(DisplayName = "아이템 교환 주문 예외테스트")]
|
||||
// public async Task exceptionTests()
|
||||
// {
|
||||
// MetaTableTestHelper meta_table_test_helper = new();
|
||||
// meta_table_test_helper.load();
|
||||
// var meta = meta_table_test_helper.getMetaTableRef();
|
||||
// Assert.NotNull(meta);
|
||||
// var meta_tuples = meta.MetaTable.PlanetItemExchangePolicyMetaTable.PlanetItemExchangePolicyDataList
|
||||
// .Select(x =>
|
||||
// string.Equals(x.CaliverseItemType, CaliverseItemType.Currency.ToString(),
|
||||
// StringComparison.CurrentCultureIgnoreCase)
|
||||
// ? (x.ID, Random.Shared.Next(10, 201))
|
||||
// : (x.ID, 1));
|
||||
// foreach (var meta_tuple in meta_tuples)
|
||||
// {
|
||||
// await orderTest(meta_tuple.Item1, meta_tuple.Item2);
|
||||
// }
|
||||
// }
|
||||
|
||||
private async Task dailyAmountExceedError(string metaId, int metaAmount, int totalDailyAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
if (exchange_response.StatusCode == HttpStatusCode.BadRequest)
|
||||
{
|
||||
|
||||
}
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async Task orderTest(string metaId, int metaAmount)
|
||||
{
|
||||
const string TEST_SEASON_ID = "TEST_SEASON_ID";
|
||||
string order_id;
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/create";
|
||||
var client = getTestClientWithBearer();
|
||||
var exchange_request = new PlanetItemExchangeRequest
|
||||
{
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, ExchangeMetaId = metaId, ExchangeMetaAmount = metaAmount,
|
||||
};
|
||||
|
||||
// Act
|
||||
var exchange_response = await client.PostAsJsonAsync(request_uri, exchange_request);
|
||||
|
||||
// Assert
|
||||
checkError(exchange_response);
|
||||
var exchange_response_body =
|
||||
await exchange_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(exchange_response_body);
|
||||
Assert.NotNull(exchange_response_body.ExchangeOrder.OrderId);
|
||||
order_id = exchange_response_body.ExchangeOrder.OrderId;
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
UserGuid = m_user_guid, Option = FindOption.All, ExchangeMetaId = metaId,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = metaId,
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/list";
|
||||
var client = getTestClientWithBearer();
|
||||
var list_request = new PlanetItemExchangeOrderListRequest
|
||||
{
|
||||
PlanetId = m_planet_id,
|
||||
ExchangeMetaId = "",
|
||||
SeasonId = TEST_SEASON_ID,
|
||||
SsoAccountId = m_account_id, Option = FindOption.All,
|
||||
};
|
||||
|
||||
// Act
|
||||
var list_response = await client.PostAsJsonAsync(request_uri, list_request);
|
||||
checkError(list_response);
|
||||
|
||||
// Assert
|
||||
list_response.EnsureSuccessStatusCode();
|
||||
var list_response_body =
|
||||
await list_response.Content.ReadFromJsonAsync<PlanetItemExchangeOrderListResponse>();
|
||||
Assert.NotNull(list_response_body);
|
||||
Assert.NotNull(list_response_body.Orders);
|
||||
|
||||
var order = list_response_body.Orders.FirstOrDefault(x => x.OrderId == order_id);
|
||||
Assert.NotNull(order);
|
||||
Assert.Equal(ExchangeOrderStatus.Pending, order.OrderStatus);
|
||||
|
||||
Assert.True(list_response_body.TotalCount > 0);
|
||||
}
|
||||
{
|
||||
// Arrange
|
||||
var request_uri = "/api/v1/planet/user/exchange/order/complete";
|
||||
var client = getTestClientWithBearer();
|
||||
|
||||
// Act
|
||||
var complete_request = new PlanetItemExchangeCompleteRequest
|
||||
{
|
||||
UserGuid = m_user_guid, ExchangeOrderId = order_id
|
||||
};
|
||||
var complete_response =
|
||||
await client.PostAsJsonAsync(request_uri, complete_request);
|
||||
checkError(complete_response);
|
||||
|
||||
// Assert
|
||||
complete_response.EnsureSuccessStatusCode();
|
||||
var complete_response_body =
|
||||
await complete_response.Content.ReadFromJsonAsync<PlanetItemExchangeResponse>();
|
||||
Assert.NotNull(complete_response_body);
|
||||
Assert.NotNull(complete_response_body.ExchangeOrder);
|
||||
Assert.Equal(order_id, complete_response_body.ExchangeOrder.OrderId);
|
||||
Assert.Equal(ExchangeOrderStatus.Completed, complete_response_body.ExchangeOrder.OrderStatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user