Search in sources :

Example 6 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 changeClientInfoError.

@Test
public void changeClientInfoError() {
    Long userID = 0L;
    Client client = ClientUtils.createPennyTeller(userID);
    when(clientRepoMock.findById(userID)).thenReturn(Optional.ofNullable(null));
    when(clientRepoMock.save(client)).thenReturn(null);
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO();
    Exception exception = assertThrows(NotFoundEx.class, () -> {
        clientService.changeClientInfo(userID, userChangeInfoDTO);
    });
    String resultMessage = exception.getMessage();
    String perfectMessage = new NotFoundEx(userID.toString()).getMessage();
    verify(clientRepoMock, times(1)).findById(userID);
    verify(clientRepoMock, never()).save(client);
    assertEquals(perfectMessage, resultMessage);
}
Also used : NotFoundEx(com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx) 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 7 with UserChangeInfoDTO

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

the class UserController method changeUserInfo.

@PutMapping("/api/v1/user/{id}")
@PreAuthorize("hasAnyAuthority('MODERATOR', 'ADMIN')")
public ResponseEntity<?> changeUserInfo(@PathVariable Long id, @Valid @RequestBody UserChangeInfoDTO newUserInfo) {
    User user = userService.getUserById(id);
    String userRole = user.getRole().name();
    boolean isModified = false;
    if (Role.isCLIENT(userRole)) {
        isModified = clientService.changeClientInfo(id, newUserInfo);
    }
    // for admin and moderator we can change only full name
    String newFullName = newUserInfo.getFullName();
    isModified = userService.changeFullName(id, newFullName);
    log.debug("User with id " + id + " modified " + isModified);
    return createModifyResponse(isModified);
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

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