composite-build-usage-example
119 строк · 4.0 Кб
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@Test22void toArticleDto() {23Article article = buildArticle();24
25ArticleDto articleDto = mapper.toArticleDto(article);26checkCompareAssertions(articleDto, article);27}28
29@Test30void toArticleDtoForNull() {31assertThat(mapper.toArticleDto(null), nullValue());32}33
34@Test35void toArticleDtoList() {36Article article = buildArticle();37List<Article> articles = Arrays.asList(article);38
39List<ArticleDto> articleDtoItems = mapper.toArticleDtoList(articles);40assertThat("Wrong result list size", articleDtoItems.size(), is(1));41checkCompareAssertions(articleDtoItems.get(0), article);42}43
44@Test45void toArticleDtoListForNull() {46assertThat(mapper.toArticleDtoList(null), nullValue());47}48
49@Test50void toArticle() {51ArticleDto articleDto = buildArticleDto();52
53Article article = mapper.toArticle(articleDto);54checkCompareAssertions(articleDto, article);55}56
57@Test58void toArticleForNull() {59assertThat(mapper.toArticle(null), nullValue());60}61
62@Test63void toArticleWithTarget() {64ArticleUpdateDto source = new ArticleUpdateDto();65final String NEW_TITLE = "New title";66source.setTitle(NEW_TITLE);67Article target = buildArticle();68final String OLD_TEXT = target.getText();69
70mapper.toArticle(source, target);71
72assertThat(target.getTitle(), is(NEW_TITLE));73assertThat(target.getText(), is(OLD_TEXT));74}75
76@Test77void toArticleWithTargetForNull() {78Article target = buildArticle();79final String OLD_TEXT = target.getText();80
81mapper.toArticle(null, target);82
83assertThat(target.getText(), is(OLD_TEXT));84}85
86private Article buildArticle() {87Article article = new Article();88article.setId(123L);89article.setTitle("Some tittle value");90article.setSummary("Some summary value");91article.setText("Some text");92article.setAuthor("John Deer");93article.setDateCreated(LocalDateTime.of(1980, 9, 21, 0, 0));94article.setDateUpdated(LocalDateTime.of(2011, 3, 5, 0, 0));95return article;96}97
98private ArticleDto buildArticleDto() {99ArticleDto articleDto = new ArticleDto();100articleDto.setId(123L);101articleDto.setTitle("Some tittle value");102articleDto.setSummary("Some summary value");103articleDto.setText("Some text");104articleDto.setAuthor("John Deer");105articleDto.setDateCreated(LocalDateTime.of(1980, 9, 21, 0, 0));106articleDto.setDateUpdated(LocalDateTime.of(2011, 3, 5, 0, 0));107return articleDto;108}109
110private void checkCompareAssertions(ArticleDto articleDto, Article article) {111assertThat("Wrong id", article.getId(), is(articleDto.getId()));112assertThat("Wrong title", article.getTitle(), is(articleDto.getTitle()));113assertThat("Wrong summary", article.getSummary(), is(articleDto.getSummary()));114assertThat("Wrong text", article.getText(), is(articleDto.getText()));115assertThat("Wrong author", article.getAuthor(), is(articleDto.getAuthor()));116assertThat("Wrong date created", article.getDateCreated(), is(articleDto.getDateCreated()));117assertThat("Wrong date updated", article.getDateUpdated(), is(articleDto.getDateUpdated()));118}119}