Search in sources :

Example 1 with UserChangeInfoDTO

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

the class ProfileControllerTest method changeAdminName.

@Test
public void changeAdminName() {
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO();
    userChangeInfoDTO.setFullName("Howard Joel Wolowitz");
    Long authedUserId = 1L;
    when(userServiceMock.changeFullName(authedUserId, userChangeInfoDTO.getFullName())).thenReturn(true);
    User user = new User();
    user.setId(authedUserId);
    user.setRole(Role.ADMIN);
    ResponseEntity<?> resultResponse = profileController.changeUserInfo(userChangeInfoDTO, user);
    ResponseEntity<?> perfectResponse = createModifyResponse(true);
    assertEquals(perfectResponse, resultResponse);
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 2 with UserChangeInfoDTO

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

the class ProfileControllerTest method changeAdminNameWithNullName.

@Test
public void changeAdminNameWithNullName() {
    // in DTO fullName not presented
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO();
    userChangeInfoDTO.setPhoneNumber("+7 (800) 555 35-35");
    Long authedUserId = 1L;
    when(userServiceMock.changeFullName(authedUserId, userChangeInfoDTO.getFullName())).thenReturn(false);
    User user = new User();
    user.setId(authedUserId);
    user.setRole(Role.ADMIN);
    ResponseEntity<?> resultResponse = profileController.changeUserInfo(userChangeInfoDTO, user);
    ResponseEntity<?> perfectResponse = createModifyResponse(false);
    assertEquals(perfectResponse, resultResponse);
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 3 with UserChangeInfoDTO

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

the class ClientServiceTest method changeClientInfoSuccess.

@Test
public void changeClientInfoSuccess() {
    Long userID = 1L;
    Client client = ClientUtils.createPennyTeller(userID);
    when(clientRepoMock.findById(userID)).thenReturn(Optional.of(client));
    when(clientRepoMock.save(client)).thenReturn(null);
    String newFullName = "Penny Hofstadter";
    String newPhoneNumber = "+7 (800) 555 35-35";
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO(newFullName, newPhoneNumber);
    boolean result = clientService.changeClientInfo(userID, userChangeInfoDTO);
    verify(clientRepoMock, times(1)).findById(userID);
    verify(clientRepoMock, times(1)).save(client);
    assertEquals(newFullName, client.getUser().getFullName());
    assertEquals(newPhoneNumber, client.getPhoneNumber());
    assertTrue(result);
}
Also used : Client(com.ncedu.fooddelivery.api.v1.entities.Client) UserChangeInfoDTO(com.ncedu.fooddelivery.api.v1.dto.user.UserChangeInfoDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 4 with UserChangeInfoDTO

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

the class ClientServiceImpl method changeClientInfo.

@Override
public boolean changeClientInfo(Long id, UserChangeInfoDTO newUserInfo) {
    Client client = getClientById(id);
    String newFullName = newUserInfo.getFullName();
    if (newFullName != null) {
        User user = client.getUser();
        user.setFullName(newFullName);
        client.setUser(user);
    }
    String newPhoneNumber = newUserInfo.getPhoneNumber();
    if (newPhoneNumber != null) {
        Client clientWithNewNumber = clientRepo.findByPhoneNumber(newPhoneNumber);
        if (clientWithNewNumber != null) {
            throw new AlreadyExistsException(newPhoneNumber);
        }
        client.setPhoneNumber(newPhoneNumber);
    }
    clientRepo.save(client);
    return true;
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) AlreadyExistsException(com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException) Client(com.ncedu.fooddelivery.api.v1.entities.Client)

Example 5 with UserChangeInfoDTO

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

the class ProfileControllerTest method changeClientName.

@Test
public void changeClientName() {
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO();
    userChangeInfoDTO.setFullName("Sheldon Lee Cooper");
    Long authedUserId = 1L;
    when(clientServiceMock.changeClientInfo(authedUserId, userChangeInfoDTO)).thenReturn(true);
    User user = new User();
    user.setId(authedUserId);
    user.setRole(Role.CLIENT);
    ResponseEntity<?> resultResponse = profileController.changeUserInfo(userChangeInfoDTO, user);
    ResponseEntity<?> perfectResponse = createModifyResponse(true);
    assertEquals(perfectResponse, resultResponse);
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

User (com.ncedu.fooddelivery.api.v1.entities.User)5 Test (org.junit.jupiter.api.Test)5 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)5 Client (com.ncedu.fooddelivery.api.v1.entities.Client)3 UserChangeInfoDTO (com.ncedu.fooddelivery.api.v1.dto.user.UserChangeInfoDTO)2 AlreadyExistsException (com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException)1 NotFoundEx (com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx)1 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)1