articles-backend-app

Форк
0
81 строка · 2.8 Кб
1
package by.andd3dfx.services;
2

3
import static org.hamcrest.CoreMatchers.is;
4
import static org.hamcrest.MatcherAssert.assertThat;
5
import static org.junit.jupiter.api.Assertions.fail;
6

7
import by.andd3dfx.dto.AuthorDto;
8
import by.andd3dfx.mappers.AuthorMapper;
9
import by.andd3dfx.persistence.dao.AuthorRepository;
10
import by.andd3dfx.persistence.entities.Author;
11
import by.andd3dfx.exceptions.AuthorNotFoundException;
12
import by.andd3dfx.services.impl.AuthorService;
13
import java.util.Arrays;
14
import java.util.List;
15
import java.util.Optional;
16
import org.junit.jupiter.api.Test;
17
import org.junit.jupiter.api.extension.ExtendWith;
18
import org.mockito.InjectMocks;
19
import org.mockito.Mock;
20
import org.mockito.Mockito;
21
import org.mockito.junit.jupiter.MockitoExtension;
22

23
@ExtendWith(MockitoExtension.class)
24
class AuthorServiceTest {
25

26
    @Mock
27
    private AuthorRepository authorRepositoryMock;
28

29
    @Mock
30
    private AuthorMapper authorMapperMock;
31

32
    @InjectMocks
33
    private AuthorService authorService;
34

35
    @Test
36
    void get() {
37
        final Long AUTHOR_ID = 123L;
38
        final Author author = new Author();
39
        final Optional<Author> optionalAuthor = Optional.of(author);
40
        final AuthorDto authorDto = new AuthorDto();
41
        Mockito.when(authorRepositoryMock.findById(AUTHOR_ID)).thenReturn(optionalAuthor);
42
        Mockito.when(authorMapperMock.toAuthorDto(author)).thenReturn(authorDto);
43

44
        AuthorDto result = authorService.get(AUTHOR_ID);
45

46
        Mockito.verify(authorRepositoryMock).findById(AUTHOR_ID);
47
        Mockito.verify(authorMapperMock).toAuthorDto(author);
48
        assertThat(result, is(authorDto));
49
    }
50

51
    @Test
52
    public void getAbsentAuthor() {
53
        final Long AUTHOR_ID = 123L;
54
        final Optional<Author> optionalAuthor = Optional.empty();
55
        Mockito.when(authorRepositoryMock.findById(AUTHOR_ID)).thenReturn(optionalAuthor);
56

57
        try {
58
            authorService.get(AUTHOR_ID);
59

60
            fail("Exception should be thrown");
61
        } catch (AuthorNotFoundException ex) {
62
            Mockito.verify(authorRepositoryMock).findById(AUTHOR_ID);
63
        }
64
    }
65

66
    @Test
67
    void getAll() {
68
        final Author author = new Author();
69
        final AuthorDto authorDto = new AuthorDto();
70
        final Iterable<Author> authors = Arrays.asList(author);
71
        final List<AuthorDto> authorDtoList = Arrays.asList(authorDto);
72
        Mockito.when(authorRepositoryMock.findAll()).thenReturn(authors);
73
        Mockito.when(authorMapperMock.toAuthorDto(author)).thenReturn(authorDto);
74

75
        List<AuthorDto> result = authorService.getAll();
76

77
        Mockito.verify(authorRepositoryMock).findAll();
78
        Mockito.verify(authorMapperMock).toAuthorDto(author);
79
        assertThat(result, is(authorDtoList));
80
    }
81
}
82

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.