articles-backend-app
66 строк · 2.3 Кб
1package by.andd3dfx.persistence.dao;
2
3import by.andd3dfx.persistence.entities.Article;
4import org.junit.jupiter.api.AfterEach;
5import org.junit.jupiter.api.BeforeEach;
6import org.junit.jupiter.api.Test;
7import org.junit.jupiter.api.extension.ExtendWith;
8import org.mockito.junit.jupiter.MockitoExtension;
9import org.springframework.beans.factory.annotation.Autowired;
10import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
11import org.springframework.data.domain.PageRequest;
12import org.springframework.data.domain.Pageable;
13import org.springframework.data.domain.Sort;
14
15import java.time.LocalDateTime;
16import java.util.Arrays;
17import java.util.List;
18
19import static by.andd3dfx.persistence.dao.ArticleRepositoryCustomImplTest.buildArticle;
20import static org.hamcrest.CoreMatchers.is;
21import static org.hamcrest.MatcherAssert.assertThat;
22import static org.junit.jupiter.api.Assertions.assertTrue;
23
24@ExtendWith(MockitoExtension.class)
25@DataJpaTest
26class ArticleRepositoryTest {
27
28@Autowired
29private ArticleRepository repository;
30
31private Article entity;
32private Article entity2;
33private Article entity3;
34
35@BeforeEach
36public void setup() {
37repository.deleteAll();
38entity = buildArticle("Ivan", "HD", LocalDateTime.parse("2010-12-03T10:15:30"));
39entity2 = buildArticle("Vasily", "HD", LocalDateTime.parse("2011-12-03T10:15:30"));
40entity3 = buildArticle("Ivan", "4K", LocalDateTime.parse("2012-12-03T10:15:30"));
41repository.saveAll(Arrays.asList(entity, entity2, entity3));
42}
43
44@AfterEach
45public void tearDown() {
46repository.deleteAll();
47}
48
49@Test
50public void findAll() {
51var result = repository.findAll(Pageable.ofSize(10));
52
53assertThat("Wrong records amount", result.getNumberOfElements(), is(3));
54assertTrue(result.getContent().containsAll(List.of(entity, entity2, entity3)));
55}
56
57@Test
58public void findAll_withPageNSizeNSorting() {
59var result = repository.findAll(PageRequest.of(0, 2, Sort.by("title", "summary")));
60
61assertThat("Wrong records amount", result.getNumberOfElements(), is(2));
62var articles = result.getContent();
63assertThat(articles.get(0), is(entity3));
64assertThat(articles.get(1), is(entity));
65}
66}
67