// 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(); // 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().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(); // 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(); // 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(); // 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); // } // } // }