spring-boot-2-template

Форк
0
74 строки · 2.6 Кб
1
package by.andd3dfx.templateapp.persistence.dao;
2

3
import by.andd3dfx.templateapp.persistence.entities.Article;
4
import org.junit.jupiter.api.AfterEach;
5
import org.junit.jupiter.api.BeforeEach;
6
import org.junit.jupiter.api.Test;
7
import org.junit.jupiter.api.extension.ExtendWith;
8
import org.mockito.junit.jupiter.MockitoExtension;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
11
import org.springframework.data.domain.PageRequest;
12
import org.springframework.data.domain.Pageable;
13
import org.springframework.data.domain.Sort;
14

15
import java.time.LocalDateTime;
16
import java.util.Arrays;
17
import java.util.List;
18

19
import static org.hamcrest.CoreMatchers.is;
20
import static org.hamcrest.MatcherAssert.assertThat;
21
import static org.junit.jupiter.api.Assertions.*;
22

23
@DataJpaTest
24
class ArticleRepositoryTest {
25

26
    @Autowired
27
    private ArticleRepository repository;
28

29
    private Article entity;
30
    private Article entity2;
31
    private Article entity3;
32

33
    @BeforeEach
34
    public void setup() {
35
        repository.deleteAll();
36
        entity = buildArticle("Ivan", "HD", LocalDateTime.parse("2010-12-03T10:15:30"));
37
        entity2 = buildArticle("Vasily", "HD", LocalDateTime.parse("2011-12-03T10:15:30"));
38
        entity3 = buildArticle("Ivan", "4K", LocalDateTime.parse("2012-12-03T10:15:30"));
39
        repository.saveAll(Arrays.asList(entity, entity2, entity3));
40
    }
41

42
    @AfterEach
43
    public void tearDown() {
44
        repository.deleteAll();
45
    }
46

47
    @Test
48
    public void findAll() {
49
        var result = repository.findAll(Pageable.ofSize(10));
50

51
        assertThat("Wrong records amount", result.getNumberOfElements(), is(3));
52
        assertTrue(result.getContent().containsAll(List.of(entity, entity2, entity3)));
53
    }
54

55
    @Test
56
    public void findAll_withPageNSizeNSorting() {
57
        var result = repository.findAll(PageRequest.of(0, 2, Sort.by("title", "summary")));
58

59
        assertThat("Wrong records amount", result.getNumberOfElements(), is(2));
60
        var articles = result.getContent();
61
        assertThat(articles.get(0), is(entity3));
62
        assertThat(articles.get(1), is(entity));
63
    }
64

65
    private static Article buildArticle(String title, String summary, LocalDateTime timestamp) {
66
        Article article = new Article();
67
        article.setTitle(title);
68
        article.setSummary(summary);
69
        article.setText("any text");
70
        article.setTimestamp(timestamp);
71
        article.setAuthor("Some author");
72
        return article;
73
    }
74
}

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

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

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

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