Skip to content

Commit 23af766

Browse files
committed
test(RegisterUserUC): create a test case when the use case fails, the test passes
1 parent 5751bee commit 23af766

1 file changed

Lines changed: 23 additions & 5 deletions

File tree

test/UseCases.Test/User/Register/RegisterUserUCTest.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,27 @@
33
using CommonTestUtilities.Services;
44
using FluentAssertions;
55
using RecipesApp.Application.UseCases.User.Register;
6+
using RecipesApp.Exception.Project;
7+
using RecipesApp.Exception.Resources;
68

79
namespace UseCases.Test.User.Register;
810

911
public class RegisterUserUCTest
1012
{
11-
private RegisterUserUC CreateUseCase()
13+
private RegisterUserUC CreateUseCase(string? email = null)
1214
{
13-
var r = new UserReadOnlyRepositoryMockFactory().CreateMock();
15+
var factory = new UserReadOnlyRepositoryMockFactory();
16+
17+
if (string.IsNullOrEmpty(email) is false)
18+
factory.ExistActiveUserWithEmail(email);
1419
var w = UserWriteOnlyRepositoryMockFactory.CreateMock();
1520
var uw = UnitOfWorkMockFactory.CreateMock();
1621
var map = MapperMockFactory.CreateMock();
1722
var pw = EncryptMockFactory.CreateMock();
18-
19-
return new RegisterUserUC(r, w, uw, map, pw);
23+
24+
return new RegisterUserUC(factory.CreateMock(), w, uw, map, pw);
2025
}
21-
26+
2227
[Fact]
2328
public async Task Test_OnSuccess()
2429
{
@@ -30,4 +35,17 @@ public async Task Test_OnSuccess()
3035
result.Should().NotBeNull();
3136
result.Name.Should().Be(request.Name);
3237
}
38+
39+
[Fact]
40+
public async Task Test_OnFailure_WithEmailAlreadyRegistered()
41+
{
42+
var request = RegisterUserRequestJSONMockFactory.CreateMock();
43+
var uc = CreateUseCase(request.Email);
44+
45+
Func<Task> act = async () => await uc.Execute(request);
46+
47+
(await act.Should().ThrowAsync<ErrorOnValidationException>())
48+
.Where(e => e.ErrorMessages.Count == 1
49+
&& e.ErrorMessages.Contains(ResourcesAccessor.EMAIL_ALREADY_REGISTERED));
50+
}
3351
}

0 commit comments

Comments
 (0)