1
package by.andd3dfx.templateapp.persistence.dao;
3
import by.andd3dfx.templateapp.IntegrationTestInitializer;
4
import by.andd3dfx.templateapp.persistence.entities.Article;
5
import org.junit.jupiter.api.AfterEach;
6
import org.junit.jupiter.api.BeforeEach;
7
import org.junit.jupiter.api.Test;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
10
import org.springframework.boot.test.context.SpringBootTest;
11
import org.springframework.data.domain.PageRequest;
12
import org.springframework.data.domain.Sort;
13
import org.springframework.test.context.ContextConfiguration;
15
import java.time.LocalDateTime;
16
import java.util.Arrays;
19
import static org.hamcrest.CoreMatchers.is;
20
import static org.hamcrest.MatcherAssert.assertThat;
21
import static org.junit.jupiter.api.Assertions.assertTrue;
23
@ContextConfiguration(initializers = IntegrationTestInitializer.class)
25
class ArticleRepositoryTest {
28
private ArticleRepository repository;
30
private Article entity;
31
private Article entity2;
32
private Article entity3;
36
repository.deleteAll();
37
entity = buildArticle("Ivan", "HD", LocalDateTime.parse("2010-12-03T10:15:30"));
38
entity2 = buildArticle("Vasily", "HD", LocalDateTime.parse("2011-12-03T10:15:30"));
39
entity3 = buildArticle("Ivan", "4K", LocalDateTime.parse("2012-12-03T10:15:30"));
40
repository.saveAll(Arrays.asList(entity, entity2, entity3));
44
public void tearDown() {
45
repository.deleteAll();
49
public void findAll() {
50
var result = repository.findAll(PageRequest.of(0, 10));
52
assertThat("Wrong records amount", result.getNumberOfElements(), is(3));
56
public void findAll_withPageNSizeNSorting() {
57
var result = repository.findAll(PageRequest.of(0, 2, Sort.by("title", "summary")));
59
assertThat("Wrong records amount", result.getNumberOfElements(), is(2));
60
var articles = result.getContent();
62
assertThat(articles.get(0).getTitle(), is(entity3.getTitle()));
63
assertThat(articles.get(0).getSummary(), is(entity3.getSummary()));
65
assertThat(articles.get(1).getTitle(), is(entity.getTitle()));
66
assertThat(articles.get(1).getSummary(), is(entity.getSummary()));
69
private static Article buildArticle(String title, String summary, LocalDateTime timestamp) {
70
Article article = new Article();
71
article.setTitle(title);
72
article.setSummary(summary);
73
article.setText("any text");
74
article.setTimestamp(timestamp);
75
article.setAuthor("Some author");