Skip to content

Commit f9138a1

Browse files
committed
feat: created a random generator
1 parent 0a2d056 commit f9138a1

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.joaov1ct0r.restful_api_users_java.modules.domain.services;
2+
3+
import org.springframework.stereotype.Service;
4+
import java.util.Random;
5+
6+
@Service
7+
public class Generator {
8+
private final String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%&";
9+
private final Random rnd = new Random();
10+
public String generateRandomPassword(int len) {
11+
StringBuilder sb = new StringBuilder(len);
12+
13+
for (int i = 0; i < len; i++) {
14+
sb.append(this.chars.charAt(this.rnd.nextInt(this.chars.length())));
15+
}
16+
17+
return sb.toString();
18+
}
19+
}

src/main/java/com/joaov1ct0r/restful_api_users_java/modules/users/services/ResetPasswordService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.joaov1ct0r.restful_api_users_java.modules.domain.services.BaseService;
44
import com.joaov1ct0r.restful_api_users_java.modules.domain.services.EmailService;
5+
import com.joaov1ct0r.restful_api_users_java.modules.domain.services.Generator;
56
import com.joaov1ct0r.restful_api_users_java.modules.users.dtos.ResetPasswordDTO;
67
import com.joaov1ct0r.restful_api_users_java.modules.users.repositories.UserRepository;
78
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,9 @@ public class ResetPasswordService extends BaseService {
1516
@Autowired
1617
private UserRepository userRepository;
1718

19+
@Autowired
20+
private Generator generator;
21+
1822
public void execute(ResetPasswordDTO resetPasswordDTO) throws Exception {
1923
var isUserRegistered = this.userRepository.findByEmail(resetPasswordDTO.getEmail());
2024

@@ -36,7 +40,7 @@ public void execute(ResetPasswordDTO resetPasswordDTO) throws Exception {
3640
this.emailService.sendMail(
3741
userToUpdate.getEmail(),
3842
"Password Updated",
39-
"Your new password is: 123456"
43+
"Your new password is: " + this.generator.generateRandomPassword(9)
4044
);
4145
}
4246
}

src/test/java/com/joaov1ct0r/restful_api_users_java/modules/users/services/users/ResetPasswordServiceTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.joaov1ct0r.restful_api_users_java.modules.domain.entities.ErrorLogEntity;
44
import com.joaov1ct0r.restful_api_users_java.modules.domain.repositories.ErrorLogsRepository;
55
import com.joaov1ct0r.restful_api_users_java.modules.domain.services.EmailService;
6+
import com.joaov1ct0r.restful_api_users_java.modules.domain.services.Generator;
67
import com.joaov1ct0r.restful_api_users_java.modules.users.dtos.ResetPasswordDTO;
78
import com.joaov1ct0r.restful_api_users_java.modules.users.entities.UserEntity;
89
import com.joaov1ct0r.restful_api_users_java.modules.users.repositories.UserRepository;
@@ -40,11 +41,15 @@ public class ResetPasswordServiceTest {
4041
@Mock
4142
private ErrorLogsRepository errorLogsRepository;
4243

44+
@Mock
45+
private Generator generator;
46+
4347
@BeforeEach
4448
public void beforeEachSetUp() {
4549
Mockito.reset(this.userRepository);
4650
Mockito.reset(this.emailService);
4751
Mockito.reset(this.errorLogsRepository);
52+
Mockito.reset(this.generator);
4853
Mockito.when(this.errorLogsRepository.save(any())).thenReturn(new ErrorLogEntity(
4954
UUID.randomUUID(),
5055
UUID.randomUUID(),
@@ -86,6 +91,8 @@ public void shouldBeAbleToResetPassword() {
8691
)
8792
));
8893

94+
Mockito.when(this.generator.generateRandomPassword(9)).thenReturn("any_generated_string");
95+
8996
try {
9097
this.sut.execute(resetPasswordDTO);
9198
} catch (Exception e) {

0 commit comments

Comments
 (0)