Skip to content

Commit a58cfa0

Browse files
Created unit test for the login controller
1 parent 94e4238 commit a58cfa0

File tree

2 files changed

+71
-6
lines changed

2 files changed

+71
-6
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Moq;
2+
using Microsoft.AspNetCore.Mvc;
3+
using tdd_architecture_template_dotnet.Controllers.V1.Login;
4+
using tdd_architecture_template_dotnet.Application.Services.Login.Interfaces;
5+
using tdd_architecture_template_dotnet.Domain.Enums;
6+
using tdd_architecture_template_dotnet.Application.Models.Http;
7+
8+
namespace tdd_architecture_template_dotnet.Tests.Controllers.Login
9+
{
10+
public class LoginControllerTests
11+
{
12+
private readonly Mock<ILoginService> _loginServiceMock;
13+
private readonly LoginController _controller;
14+
15+
public LoginControllerTests()
16+
{
17+
_loginServiceMock = new Mock<ILoginService>();
18+
_controller = new LoginController(_loginServiceMock.Object);
19+
}
20+
21+
[Fact]
22+
public async Task GetLogin_ReturnsOk_WhenServiceReturnsSuccess()
23+
{
24+
// Arrange
25+
var email = "[email protected]";
26+
var result = new Result<string>
27+
{
28+
StatusCode = (int)HttpStatus.Ok,
29+
Data = "token123",
30+
Message = "Login successfully"
31+
};
32+
33+
_loginServiceMock
34+
.Setup(s => s.GetLogin(email))
35+
.ReturnsAsync(result);
36+
37+
// Act
38+
var response = await _controller.GetLogin(email);
39+
40+
// Assert
41+
var okResult = Assert.IsType<OkObjectResult>(response);
42+
Assert.Equal(200, okResult.StatusCode);
43+
Assert.Equal(result, okResult.Value);
44+
}
45+
46+
[Fact]
47+
public async Task GetLogin_ReturnsBadRequest_WhenServiceReturnsBadRequest()
48+
{
49+
// Arrange
50+
var email = "[email protected]";
51+
var result = new Result<string>
52+
{
53+
StatusCode = (int)HttpStatus.BadRequest,
54+
Data = null,
55+
Message = "Invalid email"
56+
};
57+
58+
_loginServiceMock
59+
.Setup(s => s.GetLogin(email))
60+
.ReturnsAsync(result);
61+
62+
// Act
63+
var response = await _controller.GetLogin(email);
64+
65+
// Assert
66+
var badRequestResult = Assert.IsType<BadRequestObjectResult>(response);
67+
Assert.Equal(400, badRequestResult.StatusCode);
68+
Assert.Equal(result, badRequestResult.Value);
69+
}
70+
}
71+
}

tests/tdd-architecture-template-dotnet.Tests/tdd-architecture-template-dotnet.Tests.csproj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@
1010
<IsTestProject>true</IsTestProject>
1111
</PropertyGroup>
1212

13-
<ItemGroup>
14-
<Compile Remove="Controllers\**" />
15-
<EmbeddedResource Remove="Controllers\**" />
16-
<None Remove="Controllers\**" />
17-
</ItemGroup>
18-
1913
<ItemGroup>
2014
<PackageReference Include="AutoFixture" Version="4.18.1" />
2115
<PackageReference Include="coverlet.collector" Version="6.0.0" />

0 commit comments

Comments
 (0)