초기커밋
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);
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user