This repository has been archived on 2026-05-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
codiki-old/src/test/java/org/codiki/images/ImageServiceTest.java
T

101 lines
3.1 KiB
Java

package org.codiki.images;
import org.codiki.core.entities.dto.ImageDTO;
import org.codiki.core.entities.persistence.Image;
import org.codiki.core.entities.persistence.User;
import org.codiki.core.repositories.ImageRepository;
import org.codiki.core.repositories.UserRepository;
import org.codiki.core.services.FileUploadService;
import org.codiki.core.services.UserService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.security.Principal;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowable;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
@RunWith(MockitoJUnitRunner.class)
public class ImageServiceTest {
private ImageService imageService;
@Mock
private UserService userService;
@Mock
private UserRepository userRepository;
@Mock
private FileUploadService fileUploadService;
@Mock
private ImageRepository imageRepository;
@Before
public void setUp() {
imageService = new ImageService(userService,
userRepository,
fileUploadService,
imageRepository);
}
@Test
public void getUserImages_should_return_ImageDTO_list() {
// given
Principal principal = mock(Principal.class);
User user = new User();
user.setId(1L);
given(userService.getUserByPrincipal(principal)).willReturn(Optional.of(user));
Image image = new Image();
image.setId(2L);
image.setLink("linkValue");
given(imageRepository.getByUserId(1L)).willReturn(Collections.singletonList(image));
// when
List<ImageDTO> result = imageService.getUserImages(principal);
// then
assertThat(result).isNotNull().hasSize(1);
assertThat(result.get(0).getId()).isEqualTo(2L);
assertThat(result.get(0).getLink()).isEqualTo("linkValue");
}
@Test
public void getUserImages_should_throw_a_NoSuchElementException_if_user_doesnt_exist() {
// given
Principal principal = mock(Principal.class);
given(userService.getUserByPrincipal(principal)).willReturn(Optional.empty());
// when
Throwable throwable = catchThrowable(() -> imageService.getUserImages(principal));
// then
assertThat(throwable).isNotNull().isExactlyInstanceOf(NoSuchElementException.class);
}
@Test
public void getUserImages_should_return_an_empty_list_if_user_doesnt_have_any_image() {
// given
Principal principal = mock(Principal.class);
User user = new User();
user.setId(1L);
given(userService.getUserByPrincipal(principal)).willReturn(Optional.of(user));
given(imageRepository.getByUserId(1L)).willReturn(Collections.emptyList());
// when
List<ImageDTO> result = imageService.getUserImages(principal);
// then
assertThat(result).isNotNull().isEmpty();
}
}