1
1
package tech .ydb .data .books ;
2
2
3
3
import java .time .Instant ;
4
+ import java .util .Iterator ;
4
5
import java .util .List ;
5
6
import java .util .Optional ;
6
7
import java .util .Set ;
8
+
7
9
import org .junit .jupiter .api .Assertions ;
8
10
import org .junit .jupiter .api .Test ;
9
11
import org .springframework .beans .factory .annotation .Autowired ;
10
12
import org .springframework .data .domain .PageRequest ;
11
13
import org .springframework .data .domain .Sort ;
14
+
12
15
import tech .ydb .data .YdbBaseTest ;
13
16
import tech .ydb .data .books .entity .Author ;
14
17
import tech .ydb .data .books .entity .Book ;
@@ -32,29 +35,27 @@ public class RepositoriesIntegrationTest extends YdbBaseTest {
32
35
33
36
@ Test
34
37
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 ());
36
39
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 ();
40
42
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 ));
44
47
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 );
49
52
Iterable <Book > books = bookRepository .findAll ();
50
53
Assertions .assertEquals (expected , books );
51
54
52
55
Optional <Book > bookO = bookRepository .findBookByTitle ("War and Peace" );
53
56
Assertions .assertTrue (bookO .isPresent ());
54
57
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" ));
58
59
59
60
Book book = bookO .get ();
60
61
book .getReviews ().add (review3 );
@@ -63,11 +64,11 @@ public void crudTest() {
63
64
Assertions .assertEquals (3 , reviewRepository .count ());
64
65
65
66
review1 .setRating (100 );
66
- review1 .setNew (false );
67
+ review1 .setIsNew (false );
67
68
review2 .setRating (90 );
68
- review2 .setNew (false );
69
+ review2 .setIsNew (false );
69
70
review3 .setRating (80 );
70
- review3 .setNew (false );
71
+ review3 .setIsNew (false );
71
72
72
73
Set <Review > reviews = Set .of (review1 , review2 , review3 );
73
74
reviewRepository .saveAll (reviews );
@@ -78,13 +79,15 @@ public void crudTest() {
78
79
book = bookO .get ();
79
80
Assertions .assertEquals (reviews , book .getReviews ());
80
81
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" );
83
84
84
85
authorRepository .saveAll (List .of (author1 , author2 ));
85
86
Assertions .assertEquals (3 , authorRepository .count ());
86
87
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 ));
88
91
bookRepository .save (book );
89
92
90
93
expected .get (0 ).setReviews (Set .of (review1 , review2 , review3 ));
@@ -97,7 +100,7 @@ public void crudTest() {
97
100
List <Author > authors = authorRepository .findAuthorsByBookId (3 );
98
101
Assertions .assertEquals (Set .of (author1 , author2 ), Set .copyOf (authors ));
99
102
100
- Review review = createReview (4 , 3 , "Reader" , "Text" , 5 , Instant .now ());
103
+ Review review = new Review (4 , 3 , "Reader" , "Text" , 5 , Instant .now ());
101
104
reviewRepository .save (review );
102
105
103
106
bookRepository .deleteById (3L );
@@ -114,16 +117,12 @@ public void crudTest() {
114
117
115
118
@ Test
116
119
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" ));
127
126
reviewRepository .saveAll (List .of (review3 , review4 , review5 , review6 ));
128
127
129
128
Iterable <Review > reviews = reviewRepository .findByReader (
@@ -137,6 +136,21 @@ public void pagingAndSortingTest() {
137
136
Assertions .assertEquals (List .of (review5 , review6 ), reviews );
138
137
139
138
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
+
140
154
Assertions .assertEquals (List .of (review6 , review5 , review4 , review3 , review2 , review1 ), reviews );
141
155
142
156
reviews = reviewRepository .findAll (PageRequest .of (0 , 3 , Sort .by ("id" ))).getContent ();
@@ -148,38 +162,4 @@ public void pagingAndSortingTest() {
148
162
reviews = reviewRepository .findAll (PageRequest .of (2 , 2 )).getContent ();
149
163
Assertions .assertEquals (List .of (review5 , review6 ), reviews );
150
164
}
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
- }
185
165
}
0 commit comments