Search in sources :

Example 26 with File

use of com.ncedu.fooddelivery.api.v1.entities.File in project 2021-msk-food-delivery by netcracker-edu.

the class FileServiceTest method saveJpegLargeHeightClient.

@Test
public void saveJpegLargeHeightClient() throws IOException {
    // prepare
    Long userId = 1L;
    User rajeshClient = UserUtils.clientRajeshKoothrappali(userId);
    MultipartFile file = getImgWithType("testLargeHeight", "jpeg");
    Long fileSize = file.getSize();
    log.info("FILE SIZE before uploading: " + fileSize + " FILE NAME: " + file.getName());
    when(fileRepoMock.save(any(File.class))).thenAnswer(invocation -> invocation.getArguments()[0]);
    FileLinkDTO fileLinkDTO = fileService.save(file, rajeshClient);
    verify(fileRepoMock, times(1)).save(any(File.class));
    Path uploadedFile = getUploadedFilePath(fileLinkDTO.getFileUuid());
    assertTrue(Files.exists(uploadedFile));
    Long uploadedFileSize = Files.size(uploadedFile);
    log.info("FILE SIZE after uploading: " + uploadedFileSize + " FILE UUID: " + fileLinkDTO.getFileUuid());
    // uploaded size less than income because convert from jpeg to jpeg with small resolution
    assertTrue(fileSize > uploadedFileSize);
    BufferedImage bufferedImage = ImageIO.read(uploadedFile.toFile());
    assertEquals(CLIENT_IMAGE_HEIGHT, bufferedImage.getHeight());
}
Also used : Path(java.nio.file.Path) MockMultipartFile(org.springframework.mock.web.MockMultipartFile) MultipartFile(org.springframework.web.multipart.MultipartFile) User(com.ncedu.fooddelivery.api.v1.entities.User) File(com.ncedu.fooddelivery.api.v1.entities.File) MockMultipartFile(org.springframework.mock.web.MockMultipartFile) MultipartFile(org.springframework.web.multipart.MultipartFile) FileLinkDTO(com.ncedu.fooddelivery.api.v1.dto.file.FileLinkDTO) BufferedImage(java.awt.image.BufferedImage) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 27 with File

use of com.ncedu.fooddelivery.api.v1.entities.File in project 2021-msk-food-delivery by netcracker-edu.

the class UserServiceImpl method deleteAvatar.

@Override
public void deleteAvatar(User user) {
    UUID avatarId = user.getAvatarId();
    if (avatarId == null) {
        return;
    }
    user.setAvatarId(null);
    userRepo.save(user);
    File avatar = fileService.getFile(avatarId);
    if (avatar != null) {
        fileService.delete(avatar, user);
    }
}
Also used : File(com.ncedu.fooddelivery.api.v1.entities.File)

Example 28 with File

use of com.ncedu.fooddelivery.api.v1.entities.File in project 2021-msk-food-delivery by netcracker-edu.

the class UserServiceImpl method addAvatar.

@Override
public UserInfoDTO addAvatar(User authedUser, String fileUuid) {
    UUID avatarId = UUID.fromString(fileUuid);
    File avatar = fileService.getFile(avatarId);
    authedUser.setAvatarId(avatar.getId());
    userRepo.save(authedUser);
    return createUserDTO(authedUser);
}
Also used : File(com.ncedu.fooddelivery.api.v1.entities.File)

Aggregations

File (com.ncedu.fooddelivery.api.v1.entities.File)24 Path (java.nio.file.Path)22 MultipartFile (org.springframework.web.multipart.MultipartFile)22 Test (org.junit.jupiter.api.Test)21 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)21 MockMultipartFile (org.springframework.mock.web.MockMultipartFile)21 User (com.ncedu.fooddelivery.api.v1.entities.User)18 FileLinkDTO (com.ncedu.fooddelivery.api.v1.dto.file.FileLinkDTO)15 BufferedImage (java.awt.image.BufferedImage)10 CustomAccessDeniedException (com.ncedu.fooddelivery.api.v1.errors.security.CustomAccessDeniedException)8 IOException (java.io.IOException)8 BadFileExtensionException (com.ncedu.fooddelivery.api.v1.errors.badrequest.BadFileExtensionException)7 FileDeleteException (com.ncedu.fooddelivery.api.v1.errors.badrequest.FileDeleteException)4 FileStorageException (com.ncedu.fooddelivery.api.v1.errors.badrequest.FileStorageException)3 MalformedURLException (java.net.MalformedURLException)3 Resource (org.springframework.core.io.Resource)3 UrlResource (org.springframework.core.io.UrlResource)3 FileType (com.ncedu.fooddelivery.api.v1.entities.FileType)2 NotFoundEx (com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx)2 InputStream (java.io.InputStream)2