spring-boot-2-template
107 строк · 3.5 Кб
1package by.andd3dfx.templateapp.mappers;
2
3import by.andd3dfx.templateapp.dto.ArticleDto;
4import by.andd3dfx.templateapp.dto.ArticleUpdateDto;
5import by.andd3dfx.templateapp.persistence.entities.Article;
6import org.junit.jupiter.api.Test;
7import org.mapstruct.factory.Mappers;
8
9import java.time.LocalDateTime;
10import java.util.Arrays;
11import java.util.List;
12
13import static org.hamcrest.CoreMatchers.is;
14import static org.hamcrest.CoreMatchers.nullValue;
15import static org.hamcrest.MatcherAssert.assertThat;
16
17class ArticleMapperTest {
18
19private ArticleMapper mapper = Mappers.getMapper(ArticleMapper.class);
20
21@Test
22void toArticleDto() {
23Article article = buildArticle();
24
25ArticleDto articleDto = mapper.toArticleDto(article);
26
27checkCompareAssertions(articleDto, article);
28}
29
30@Test
31void toArticleDtoForNull() {
32assertThat(mapper.toArticleDto(null), nullValue());
33}
34
35@Test
36void toArticle() {
37ArticleDto articleDto = buildArticleDto();
38
39Article article = mapper.toArticle(articleDto);
40
41checkCompareAssertions(articleDto, article);
42}
43
44@Test
45void toArticleForNull() {
46assertThat(mapper.toArticle(null), nullValue());
47}
48
49@Test
50void toArticleWithTarget() {
51final String NEW_TITLE = "New title";
52ArticleUpdateDto source = ArticleUpdateDto.builder()
53.title(NEW_TITLE)
54.build();
55Article target = buildArticle();
56final String OLD_TEXT = target.getText();
57
58mapper.toArticle(source, target);
59
60assertThat(target.getTitle(), is(NEW_TITLE));
61assertThat(target.getText(), is(OLD_TEXT));
62}
63
64@Test
65void toArticleWithTargetForNull() {
66Article target = buildArticle();
67final String OLD_TEXT = target.getText();
68
69mapper.toArticle(null, target);
70
71assertThat(target.getText(), is(OLD_TEXT));
72}
73
74private Article buildArticle() {
75return 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
86private ArticleDto buildArticleDto() {
87return 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
98private void checkCompareAssertions(ArticleDto articleDto, Article article) {
99assertThat("Wrong id", article.getId(), is(articleDto.getId()));
100assertThat("Wrong title", article.getTitle(), is(articleDto.getTitle()));
101assertThat("Wrong summary", article.getSummary(), is(articleDto.getSummary()));
102assertThat("Wrong text", article.getText(), is(articleDto.getText()));
103assertThat("Wrong author", article.getAuthor(), is(articleDto.getAuthor()));
104assertThat("Wrong date created", article.getDateCreated(), is(articleDto.getDateCreated()));
105assertThat("Wrong date updated", article.getDateUpdated(), is(articleDto.getDateUpdated()));
106}
107}