11package tech .ydb .data .books ;
22
33import java .time .Instant ;
4+ import java .util .Iterator ;
45import java .util .List ;
56import java .util .Optional ;
67import java .util .Set ;
8+
79import org .junit .jupiter .api .Assertions ;
810import org .junit .jupiter .api .Test ;
911import org .springframework .beans .factory .annotation .Autowired ;
1012import org .springframework .data .domain .PageRequest ;
1113import org .springframework .data .domain .Sort ;
14+
1215import tech .ydb .data .YdbBaseTest ;
1316import tech .ydb .data .books .entity .Author ;
1417import tech .ydb .data .books .entity .Book ;
@@ -32,29 +35,27 @@ public class RepositoriesIntegrationTest extends YdbBaseTest {
3235
3336 @ Test
3437 public void crudTest () {
35- Assertions .assertEquals (1 , authorRepository .findAuthorByName ("Leo Tolstoy" ).get (0 ).getId ());
38+ Assertions .assertEquals (Long . valueOf ( 1 ) , authorRepository .findAuthorByName ("Leo Tolstoy" ).get (0 ).getId ());
3639
37- Review review1 = createReview (
38- 1 , 1 , "Ivan Ivanov" , "Masterpiece!" , 10 , Instant .parse ("2024-03-19T15:52:26Z" )
39- );
40+ Review review1 = reviewRepository .findById (1L ).orElseThrow ();
41+ Review review2 = reviewRepository .findById (2L ).orElseThrow ();
4042
41- Review review2 = createReview (
42- 2 , 1 , "Sergey Petrov" , "Complex work, but I liked it" , 9 , Instant .parse ("2024-03-19T16:14:05Z" )
43- );
43+ Book book1 = new Book (1 , "War and Peace" , "1234" , 1869 );
44+ book1 .getReviews ().add (review1 );
45+ book1 .getReviews ().add (review2 );
46+ book1 .getAuthors ().add (new BookAuthor (1 , 1 ));
4447
45- List < Book > expected = List . of (
46- createBook ( 1 , "War and Peace" , "1234" , 1869 , Set . of ( review1 , review2 ), Set . of (new BookAuthor (1 , 1 ))),
47- createBook ( 2 , "Anna Karenina" , "5678" , 1878 , Set . of (), Set . of ( new BookAuthor ( 1 , 2 )))
48- );
48+ Book book2 = new Book ( 2 , "Anna Karenina" , "5678" , 1878 );
49+ book1 . getAuthors (). add (new BookAuthor (1 , 2 ));
50+
51+ List < Book > expected = List . of ( book1 , book2 );
4952 Iterable <Book > books = bookRepository .findAll ();
5053 Assertions .assertEquals (expected , books );
5154
5255 Optional <Book > bookO = bookRepository .findBookByTitle ("War and Peace" );
5356 Assertions .assertTrue (bookO .isPresent ());
5457
55- Review review3 = createReview (
56- 3 , 1 , "Madiyar Nurgazin" , "Great" , 8 , Instant .parse ("2024-03-19T20:00:00Z" )
57- );
58+ Review review3 = new Review (3 , 1 , "Madiyar Nurgazin" , "Great" , 8 , Instant .parse ("2024-03-19T20:00:00Z" ));
5859
5960 Book book = bookO .get ();
6061 book .getReviews ().add (review3 );
@@ -63,11 +64,11 @@ public void crudTest() {
6364 Assertions .assertEquals (3 , reviewRepository .count ());
6465
6566 review1 .setRating (100 );
66- review1 .setNew (false );
67+ review1 .setIsNew (false );
6768 review2 .setRating (90 );
68- review2 .setNew (false );
69+ review2 .setIsNew (false );
6970 review3 .setRating (80 );
70- review3 .setNew (false );
71+ review3 .setIsNew (false );
7172
7273 Set <Review > reviews = Set .of (review1 , review2 , review3 );
7374 reviewRepository .saveAll (reviews );
@@ -78,13 +79,15 @@ public void crudTest() {
7879 book = bookO .get ();
7980 Assertions .assertEquals (reviews , book .getReviews ());
8081
81- Author author1 = createAuthor (2 , "Author 1" );
82- Author author2 = createAuthor (3 , "Author 2" );
82+ Author author1 = new Author (2 , "Author 1" );
83+ Author author2 = new Author (3 , "Author 2" );
8384
8485 authorRepository .saveAll (List .of (author1 , author2 ));
8586 Assertions .assertEquals (3 , authorRepository .count ());
8687
87- book = createBook (3 , "Title" , "Isbn" , 2024 , Set .of (), Set .of (new BookAuthor (2 , 3 ), new BookAuthor (3 , 3 )));
88+ book = new Book (3 , "Title" , "Isbn" , 2024 );
89+ book .getAuthors ().add (new BookAuthor (2 , 3 ));
90+ book .getAuthors ().add (new BookAuthor (3 , 3 ));
8891 bookRepository .save (book );
8992
9093 expected .get (0 ).setReviews (Set .of (review1 , review2 , review3 ));
@@ -97,7 +100,7 @@ public void crudTest() {
97100 List <Author > authors = authorRepository .findAuthorsByBookId (3 );
98101 Assertions .assertEquals (Set .of (author1 , author2 ), Set .copyOf (authors ));
99102
100- Review review = createReview (4 , 3 , "Reader" , "Text" , 5 , Instant .now ());
103+ Review review = new Review (4 , 3 , "Reader" , "Text" , 5 , Instant .now ());
101104 reviewRepository .save (review );
102105
103106 bookRepository .deleteById (3L );
@@ -114,16 +117,12 @@ public void crudTest() {
114117
115118 @ Test
116119 public void pagingAndSortingTest () {
117- Review review1 = createReview (
118- 1 , 1 , "Ivan Ivanov" , "Masterpiece!" , 10 , Instant .parse ("2024-03-19T15:52:26Z" )
119- );
120- Review review2 = createReview (
121- 2 , 1 , "Sergey Petrov" , "Complex work, but I liked it" , 9 , Instant .parse ("2024-03-19T16:14:05Z" )
122- );
123- Review review3 = createReview (3 , 1 , "Reader" , "Text" , 100 , Instant .parse ("2024-03-19T21:00:00Z" ));
124- Review review4 = createReview (4 , 1 , "Reader" , "Text2" , 80 , Instant .parse ("2024-03-19T22:00:00Z" ));
125- Review review5 = createReview (5 , 1 , "Reader" , "Text3" , 75 , Instant .parse ("2024-03-19T23:00:00Z" ));
126- Review review6 = createReview (6 , 1 , "Reader" , "Text4" , 50 , Instant .parse ("2024-03-20T00:00:00Z" ));
120+ Review review1 = reviewRepository .findById (1L ).orElseThrow ();
121+ Review review2 = reviewRepository .findById (2L ).orElseThrow ();
122+ Review review3 = new Review (3 , 1 , "Reader" , "Text" , 100 , Instant .parse ("2024-03-19T21:00:00Z" ));
123+ Review review4 = new Review (4 , 1 , "Reader" , "Text2" , 80 , Instant .parse ("2024-03-19T22:00:00Z" ));
124+ Review review5 = new Review (5 , 1 , "Reader" , "Text3" , 75 , Instant .parse ("2024-03-19T23:00:00Z" ));
125+ Review review6 = new Review (6 , 1 , "Reader" , "Text4" , 50 , Instant .parse ("2024-03-20T00:00:00Z" ));
127126 reviewRepository .saveAll (List .of (review3 , review4 , review5 , review6 ));
128127
129128 Iterable <Review > reviews = reviewRepository .findByReader (
@@ -137,6 +136,21 @@ public void pagingAndSortingTest() {
137136 Assertions .assertEquals (List .of (review5 , review6 ), reviews );
138137
139138 reviews = reviewRepository .findAll (Sort .by ("created" ).descending ());
139+
140+ Iterator <Review > it = reviews .iterator ();
141+ Assertions .assertTrue (it .hasNext ());
142+ Assertions .assertEquals (review6 , it .next ());
143+ Assertions .assertTrue (it .hasNext ());
144+ Assertions .assertEquals (review5 , it .next ());
145+ Assertions .assertTrue (it .hasNext ());
146+ Assertions .assertEquals (review4 , it .next ());
147+ Assertions .assertTrue (it .hasNext ());
148+ Assertions .assertEquals (review3 , it .next ());
149+ Assertions .assertTrue (it .hasNext ());
150+ Assertions .assertEquals (review2 , it .next ());
151+ Assertions .assertTrue (it .hasNext ());
152+ Assertions .assertEquals (review1 , it .next ());
153+
140154 Assertions .assertEquals (List .of (review6 , review5 , review4 , review3 , review2 , review1 ), reviews );
141155
142156 reviews = reviewRepository .findAll (PageRequest .of (0 , 3 , Sort .by ("id" ))).getContent ();
@@ -148,38 +162,4 @@ public void pagingAndSortingTest() {
148162 reviews = reviewRepository .findAll (PageRequest .of (2 , 2 )).getContent ();
149163 Assertions .assertEquals (List .of (review5 , review6 ), reviews );
150164 }
151-
152- private Review createReview (long id , long bookId , String reader , String text , long rating , Instant created ) {
153- Review review = new Review ();
154- review .setId (id );
155- review .setBookId (bookId );
156- review .setReader (reader );
157- review .setText (text );
158- review .setRating (rating );
159- review .setCreated (created );
160- review .setNew (true );
161- return review ;
162- }
163-
164- private Book createBook (
165- long id , String title , String isbn , long year , Set <Review > reviews , Set <BookAuthor > authors
166- ) {
167- Book book = new Book ();
168- book .setId (id );
169- book .setTitle (title );
170- book .setIsbn (isbn );
171- book .setYear (year );
172- book .setReviews (reviews );
173- book .setAuthors (authors );
174- book .setNew (true );
175- return book ;
176- }
177-
178- private Author createAuthor (long id , String name ) {
179- Author author = new Author ();
180- author .setId (id );
181- author .setName (name );
182- author .setNew (true );
183- return author ;
184- }
185165}
0 commit comments