From d9d72946e6656e680bf2d74e1ce0e337d1288aa6 Mon Sep 17 00:00:00 2001 From: SelimHorri Date: Fri, 11 Mar 2022 11:09:44 +0100 Subject: [PATCH] refactor expiry date duration after mail sent --- .../tn/cita/app/constant/AppConstant.java | 3 +-- .../service/impl/RegistrationServiceImpl.java | 15 +++++++----- ... => AbstractSharedMySQLTestContainer.java} | 2 +- ...AuthenticationResourceIntegrationTest.java | 4 ++-- .../RegistrationResourceIntegrationTest.java | 24 +++++++++++-------- .../repository/CredentialRepositoryTest.java | 4 ++-- .../VerificationTokenRepositoryTest.java | 4 ++-- 7 files changed, 31 insertions(+), 25 deletions(-) rename src/test/java/tn/cita/app/container/{AbstractTestSharedMySQLContainer.java => AbstractSharedMySQLTestContainer.java} (89%) diff --git a/src/main/java/tn/cita/app/constant/AppConstant.java b/src/main/java/tn/cita/app/constant/AppConstant.java index 8a3ab5fa..0cd412d3 100644 --- a/src/main/java/tn/cita/app/constant/AppConstant.java +++ b/src/main/java/tn/cita/app/constant/AppConstant.java @@ -1,7 +1,6 @@ package tn.cita.app.constant; import java.time.Duration; -import java.time.LocalDateTime; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -46,7 +45,7 @@ public final class AppConstant { /** * Verification Token expires after specified minutes from localdatetime.now */ - public static final LocalDateTime EXPIRES_AT_FROM_NOW = LocalDateTime.now().plusMinutes(Duration.ofMinutes(30).toMinutes()); + public static final long EXPIRES_AT_FROM_NOW = Duration.ofMinutes(30).toMinutes(); } diff --git a/src/main/java/tn/cita/app/service/impl/RegistrationServiceImpl.java b/src/main/java/tn/cita/app/service/impl/RegistrationServiceImpl.java index c82c51e4..5aedfb72 100644 --- a/src/main/java/tn/cita/app/service/impl/RegistrationServiceImpl.java +++ b/src/main/java/tn/cita/app/service/impl/RegistrationServiceImpl.java @@ -104,7 +104,7 @@ private RegisterResponse registerCustomer(final RegisterRequest registerRequest) log.info("** Customer saved successfully! *"); final var verificationToken = new VerificationToken(UUID.randomUUID().toString(), - AppConstant.EXPIRES_AT_FROM_NOW, + LocalDateTime.now().plusMinutes(AppConstant.EXPIRES_AT_FROM_NOW), savedCustomer.getCredential()); final var savedVerificationToken = this.verificationTokenRepository.save(verificationToken); log.info("** Verification token saved successfully! *"); @@ -121,8 +121,9 @@ private RegisterResponse registerCustomer(final RegisterRequest registerRequest) return new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - savedCustomer.getCredential().getUsername())); + + "Please consider that link will expire after %dmin from registration", + savedCustomer.getCredential().getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW)); } private RegisterResponse registerEmployee(final RegisterRequest registerRequest) { @@ -133,7 +134,8 @@ private RegisterResponse registerEmployee(final RegisterRequest registerRequest) log.info("** Employee saved successfully! *"); final var verificationToken = new VerificationToken(UUID.randomUUID().toString(), - AppConstant.EXPIRES_AT_FROM_NOW, + LocalDateTime.now().plusMinutes(AppConstant.EXPIRES_AT_FROM_NOW), + // AppConstant.EXPIRES_AT_FROM_NOW, savedEmployee.getCredential()); final var savedVerificationToken = this.verificationTokenRepository.save(verificationToken); log.info("** Verification token saved successfully! *"); @@ -150,8 +152,9 @@ private RegisterResponse registerEmployee(final RegisterRequest registerRequest) return new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - savedEmployee.getCredential().getUsername())); + + "Please consider that link will expire after %dmin from registration", + savedEmployee.getCredential().getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW)); } @Override diff --git a/src/test/java/tn/cita/app/container/AbstractTestSharedMySQLContainer.java b/src/test/java/tn/cita/app/container/AbstractSharedMySQLTestContainer.java similarity index 89% rename from src/test/java/tn/cita/app/container/AbstractTestSharedMySQLContainer.java rename to src/test/java/tn/cita/app/container/AbstractSharedMySQLTestContainer.java index e334c8a4..85de5ba4 100644 --- a/src/test/java/tn/cita/app/container/AbstractTestSharedMySQLContainer.java +++ b/src/test/java/tn/cita/app/container/AbstractSharedMySQLTestContainer.java @@ -4,7 +4,7 @@ import org.testcontainers.containers.MySQLContainer; -public abstract class AbstractTestSharedMySQLContainer { +public abstract class AbstractSharedMySQLTestContainer { private static final MySQLContainer MYSQL_CONTAINER; diff --git a/src/test/java/tn/cita/app/integration/AuthenticationResourceIntegrationTest.java b/src/test/java/tn/cita/app/integration/AuthenticationResourceIntegrationTest.java index 227aa455..2c4e4b70 100644 --- a/src/test/java/tn/cita/app/integration/AuthenticationResourceIntegrationTest.java +++ b/src/test/java/tn/cita/app/integration/AuthenticationResourceIntegrationTest.java @@ -19,7 +19,7 @@ import org.springframework.test.web.reactive.server.WebTestClient; import tn.cita.app.constant.AppConstant; -import tn.cita.app.container.AbstractTestSharedMySQLContainer; +import tn.cita.app.container.AbstractSharedMySQLTestContainer; import tn.cita.app.dto.request.LoginRequest; import tn.cita.app.dto.response.LoginResponse; import tn.cita.app.dto.response.api.ApiPayloadResponse; @@ -29,7 +29,7 @@ @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @AutoConfigureWebTestClient -class AuthenticationResourceIntegrationTest extends AbstractTestSharedMySQLContainer { +class AuthenticationResourceIntegrationTest extends AbstractSharedMySQLTestContainer { @Autowired private AuthenticationService authenticationService; diff --git a/src/test/java/tn/cita/app/integration/RegistrationResourceIntegrationTest.java b/src/test/java/tn/cita/app/integration/RegistrationResourceIntegrationTest.java index 2aae81f6..85f944af 100644 --- a/src/test/java/tn/cita/app/integration/RegistrationResourceIntegrationTest.java +++ b/src/test/java/tn/cita/app/integration/RegistrationResourceIntegrationTest.java @@ -22,7 +22,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import tn.cita.app.constant.AppConstant; -import tn.cita.app.container.AbstractTestSharedMySQLContainer; +import tn.cita.app.container.AbstractSharedMySQLTestContainer; import tn.cita.app.domain.UserRoleBasedAuthority; import tn.cita.app.dto.request.RegisterRequest; import tn.cita.app.dto.response.RegisterResponse; @@ -31,7 +31,7 @@ @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @AutoConfigureWebTestClient -class RegistrationResourceIntegrationTest extends AbstractTestSharedMySQLContainer { +class RegistrationResourceIntegrationTest extends AbstractSharedMySQLTestContainer { @Autowired private WebTestClient webTestClient; @@ -61,8 +61,9 @@ void givenValidRegisterRequestForCustomer_whenRegister_thenRegisterResponseShoul new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - registerRequest.getUsername()))); + + "Please consider that link will expire after %dmin from registration", + registerRequest.getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW))); this.webTestClient .post() @@ -101,8 +102,9 @@ void givenValidRegisterRequestForWorker_whenRegister_thenRegisterResponseShouldB new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - registerRequest.getUsername()))); + + "Please consider that link will expire after %dmin from registration", + registerRequest.getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW))); this.webTestClient .post() @@ -141,8 +143,9 @@ void givenValidRegisterRequestForManager_whenRegister_thenRegisterResponseShould new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - registerRequest.getUsername()))); + + "Please consider that link will expire after %dmin from registration", + registerRequest.getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW))); this.webTestClient .post() @@ -181,8 +184,9 @@ void givenValidRegisterRequestForOwner_whenRegister_thenRegisterResponseShouldBe new RegisterResponse(String .format("User with username %s has been saved successfully. " + "Check your email to enbale your account. " - + "Please consider that link will expire after 30min from registration", - registerRequest.getUsername()))); + + "Please consider that link will expire after %dmin from registration", + registerRequest.getUsername(), + AppConstant.EXPIRES_AT_FROM_NOW))); this.webTestClient .post() diff --git a/src/test/java/tn/cita/app/repository/CredentialRepositoryTest.java b/src/test/java/tn/cita/app/repository/CredentialRepositoryTest.java index ae7eb1d2..dd2ee9b8 100644 --- a/src/test/java/tn/cita/app/repository/CredentialRepositoryTest.java +++ b/src/test/java/tn/cita/app/repository/CredentialRepositoryTest.java @@ -7,12 +7,12 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.AutoConfigureDataJpa; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import tn.cita.app.container.AbstractTestSharedMySQLContainer; +import tn.cita.app.container.AbstractSharedMySQLTestContainer; import tn.cita.app.domain.entity.Credential; @DataJpaTest(showSql = true) @AutoConfigureDataJpa -class CredentialRepositoryTest extends AbstractTestSharedMySQLContainer { +class CredentialRepositoryTest extends AbstractSharedMySQLTestContainer { @Autowired private CredentialRepository credentialRepository; diff --git a/src/test/java/tn/cita/app/repository/VerificationTokenRepositoryTest.java b/src/test/java/tn/cita/app/repository/VerificationTokenRepositoryTest.java index ae5a2807..c73a5150 100644 --- a/src/test/java/tn/cita/app/repository/VerificationTokenRepositoryTest.java +++ b/src/test/java/tn/cita/app/repository/VerificationTokenRepositoryTest.java @@ -7,12 +7,12 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.AutoConfigureDataJpa; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import tn.cita.app.container.AbstractTestSharedMySQLContainer; +import tn.cita.app.container.AbstractSharedMySQLTestContainer; import tn.cita.app.domain.entity.VerificationToken; @DataJpaTest(showSql = true) @AutoConfigureDataJpa -class VerificationTokenRepositoryTest extends AbstractTestSharedMySQLContainer { +class VerificationTokenRepositoryTest extends AbstractSharedMySQLTestContainer { @Autowired private VerificationTokenRepository verificationTokenRepository;