articles-backend-app

Форк
0
66 строк · 2.3 Кб
1
package by.andd3dfx.persistence.dao;
2

3
import by.andd3dfx.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 by.andd3dfx.persistence.dao.ArticleRepositoryCustomImplTest.buildArticle;
20
import static org.hamcrest.CoreMatchers.is;
21
import static org.hamcrest.MatcherAssert.assertThat;
22
import static org.junit.jupiter.api.Assertions.assertTrue;
23

24
@ExtendWith(MockitoExtension.class)
25
@DataJpaTest
26
class ArticleRepositoryTest {
27

28
    @Autowired
29
    private ArticleRepository repository;
30

31
    private Article entity;
32
    private Article entity2;
33
    private Article entity3;
34

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

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

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

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

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

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

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

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

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

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