spring-boot-2-template

Форк
0
107 строк · 3.5 Кб
1
package by.andd3dfx.templateapp.mappers;
2

3
import by.andd3dfx.templateapp.dto.ArticleDto;
4
import by.andd3dfx.templateapp.dto.ArticleUpdateDto;
5
import by.andd3dfx.templateapp.persistence.entities.Article;
6
import org.junit.jupiter.api.Test;
7
import org.mapstruct.factory.Mappers;
8

9
import java.time.LocalDateTime;
10
import java.util.Arrays;
11
import java.util.List;
12

13
import static org.hamcrest.CoreMatchers.is;
14
import static org.hamcrest.CoreMatchers.nullValue;
15
import static org.hamcrest.MatcherAssert.assertThat;
16

17
class ArticleMapperTest {
18

19
    private ArticleMapper mapper = Mappers.getMapper(ArticleMapper.class);
20

21
    @Test
22
    void toArticleDto() {
23
        Article article = buildArticle();
24

25
        ArticleDto articleDto = mapper.toArticleDto(article);
26

27
        checkCompareAssertions(articleDto, article);
28
    }
29

30
    @Test
31
    void toArticleDtoForNull() {
32
        assertThat(mapper.toArticleDto(null), nullValue());
33
    }
34

35
    @Test
36
    void toArticle() {
37
        ArticleDto articleDto = buildArticleDto();
38

39
        Article article = mapper.toArticle(articleDto);
40

41
        checkCompareAssertions(articleDto, article);
42
    }
43

44
    @Test
45
    void toArticleForNull() {
46
        assertThat(mapper.toArticle(null), nullValue());
47
    }
48

49
    @Test
50
    void toArticleWithTarget() {
51
        final String NEW_TITLE = "New title";
52
        ArticleUpdateDto source = ArticleUpdateDto.builder()
53
                .title(NEW_TITLE)
54
                .build();
55
        Article target = buildArticle();
56
        final String OLD_TEXT = target.getText();
57

58
        mapper.toArticle(source, target);
59

60
        assertThat(target.getTitle(), is(NEW_TITLE));
61
        assertThat(target.getText(), is(OLD_TEXT));
62
    }
63

64
    @Test
65
    void toArticleWithTargetForNull() {
66
        Article target = buildArticle();
67
        final String OLD_TEXT = target.getText();
68

69
        mapper.toArticle(null, target);
70

71
        assertThat(target.getText(), is(OLD_TEXT));
72
    }
73

74
    private Article buildArticle() {
75
        return Article.builder()
76
                .id(123L)
77
                .title("Some tittle value")
78
                .summary("Some summary value")
79
                .text("Some text")
80
                .author("John Deer")
81
                .dateCreated(LocalDateTime.of(1980, 9, 21, 0, 0))
82
                .dateUpdated(LocalDateTime.of(2011, 3, 5, 0, 0))
83
                .build();
84
    }
85

86
    private ArticleDto buildArticleDto() {
87
        return ArticleDto.builder()
88
                .id(123L)
89
                .title("Some tittle value")
90
                .summary("Some summary value")
91
                .text("Some text")
92
                .author("John Deer")
93
                .dateCreated(LocalDateTime.of(1980, 9, 21, 0, 0))
94
                .dateUpdated(LocalDateTime.of(2011, 3, 5, 0, 0))
95
                .build();
96
    }
97

98
    private void checkCompareAssertions(ArticleDto articleDto, Article article) {
99
        assertThat("Wrong id", article.getId(), is(articleDto.getId()));
100
        assertThat("Wrong title", article.getTitle(), is(articleDto.getTitle()));
101
        assertThat("Wrong summary", article.getSummary(), is(articleDto.getSummary()));
102
        assertThat("Wrong text", article.getText(), is(articleDto.getText()));
103
        assertThat("Wrong author", article.getAuthor(), is(articleDto.getAuthor()));
104
        assertThat("Wrong date created", article.getDateCreated(), is(articleDto.getDateCreated()));
105
        assertThat("Wrong date updated", article.getDateUpdated(), is(articleDto.getDateUpdated()));
106
    }
107
}

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

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

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

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