Search in sources :

Example 6 with EmailChangeDTO

use of com.ncedu.fooddelivery.api.v1.dto.user.EmailChangeDTO in project 2021-msk-food-delivery by netcracker-edu.

the class UserServiceTest method changeEmailAlreadyExists.

@Test
public void changeEmailAlreadyExists() {
    Long userId = 1L;
    User penny = UserUtils.clientPennyTeller(userId);
    Long anotherId = 2L;
    User leonard = UserUtils.moderatorLeonardHofstadter(anotherId);
    String newPennyEmail = leonard.getEmail();
    when(userRepoMock.findByEmail(newPennyEmail)).thenReturn(leonard);
    String password = "password";
    EmailChangeDTO changeDTO = new EmailChangeDTO();
    changeDTO.setEmail(newPennyEmail);
    changeDTO.setPassword(password);
    Exception exception = assertThrows(AlreadyExistsException.class, () -> {
        userService.changeEmail(penny, changeDTO);
    });
    String resultMessage = exception.getMessage();
    String perfectMessage = new AlreadyExistsException(newPennyEmail).getMessage();
    assertEquals(perfectMessage, resultMessage);
    verify(userRepoMock, times(1)).findByEmail(newPennyEmail);
    verify(userRepoMock, never()).save(any(User.class));
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) AlreadyExistsException(com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException) EmailChangeDTO(com.ncedu.fooddelivery.api.v1.dto.user.EmailChangeDTO) AlreadyExistsException(com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException) PasswordsMismatchException(com.ncedu.fooddelivery.api.v1.errors.badrequest.PasswordsMismatchException) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

User (com.ncedu.fooddelivery.api.v1.entities.User)6 Test (org.junit.jupiter.api.Test)5 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)5 EmailChangeDTO (com.ncedu.fooddelivery.api.v1.dto.user.EmailChangeDTO)3 AlreadyExistsException (com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException)2 PasswordsMismatchException (com.ncedu.fooddelivery.api.v1.errors.badrequest.PasswordsMismatchException)2