1717
1818import static examples .animal .data .AnimalDataDynamicSqlSupport .*;
1919import static org .assertj .core .api .Assertions .assertThat ;
20+ import static org .assertj .core .api .Assertions .entry ;
2021import static org .junit .jupiter .api .Assertions .assertAll ;
2122import static org .mybatis .dynamic .sql .SqlBuilder .*;
2223
@@ -50,6 +51,7 @@ class FetchFirstTest {
5051 void setup () throws Exception {
5152 Class .forName (JDBC_DRIVER );
5253 InputStream is = getClass ().getResourceAsStream ("/examples/animal/data/CreateAnimalData.sql" );
54+ assert is != null ;
5355 try (Connection connection = DriverManager .getConnection (JDBC_URL , "sa" , "" )) {
5456 ScriptRunner sr = new ScriptRunner (connection );
5557 sr .setLogWriter (null );
@@ -78,7 +80,7 @@ void testOffsetAndFetchFirstAfterFrom() {
7880
7981 assertAll (
8082 () -> assertThat (records ).hasSize (3 ),
81- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (23 ),
83+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (23 ),
8284 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData offset #{parameters.p1} rows fetch first #{parameters.p2} rows only" ),
8385 () -> assertThat (selectStatement .getParameters ()).containsEntry ("p2" , 3L ),
8486 () -> assertThat (selectStatement .getParameters ()).containsEntry ("p1" , 22L )
@@ -100,7 +102,7 @@ void testFetchFirstOnlyAfterFrom() {
100102
101103 assertAll (
102104 () -> assertThat (records ).hasSize (3 ),
103- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (1 ),
105+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (1 ),
104106 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData fetch first #{parameters.p1} rows only" ),
105107 () -> assertThat (selectStatement .getParameters ()).containsEntry ("p1" , 3L )
106108 );
@@ -124,10 +126,9 @@ void testOffsetAndFetchFirstAfterWhere() {
124126
125127 assertAll (
126128 () -> assertThat (records ).hasSize (3 ),
127- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (45 ),
129+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (45 ),
128130 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} and id > #{parameters.p2,jdbcType=INTEGER} offset #{parameters.p3} rows fetch first #{parameters.p4} rows only" ),
129- () -> assertThat (selectStatement .getParameters ()).containsEntry ("p4" , 3L ),
130- () -> assertThat (selectStatement .getParameters ()).containsEntry ("p3" , 22L )
131+ () -> assertThat (selectStatement .getParameters ()).contains (entry ("p4" , 3L ), entry ("p3" , 22L ))
131132 );
132133 }
133134 }
@@ -147,7 +148,7 @@ void testFetchFirstOnlyAfterWhere() {
147148
148149 assertAll (
149150 () -> assertThat (records ).hasSize (3 ),
150- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (1 ),
151+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (1 ),
151152 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} fetch first #{parameters.p2} rows only" ),
152153 () -> assertThat (selectStatement .getParameters ()).containsEntry ("p2" , 3L )
153154 );
@@ -170,10 +171,12 @@ void testOffsetAndFetchFirstAfterOrderBy() {
170171
171172 assertAll (
172173 () -> assertThat (records ).hasSize (3 ),
173- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (23 ),
174+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (23 ),
174175 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData order by id offset #{parameters.p1} rows fetch first #{parameters.p2} rows only" ),
175- () -> assertThat (selectStatement .getParameters ()).containsEntry ("p2" , 3L ),
176- () -> assertThat (selectStatement .getParameters ()).containsEntry ("p1" , 22L )
176+ () -> assertThat (selectStatement )
177+ .extracting (SelectStatementProvider ::getParameters )
178+ .extracting ("p2" , "p1" )
179+ .containsExactly (3L , 22L )
177180 );
178181 }
179182 }
@@ -193,7 +196,7 @@ void testLimitOnlyAfterOrderBy() {
193196
194197 assertAll (
195198 () -> assertThat (records ).hasSize (3 ),
196- () -> assertThat (records . get ( 0 ). getId () ).isEqualTo (1 ),
199+ () -> assertThat (records ). first (). isNotNull (). extracting ( AnimalData :: getId ).isEqualTo (1 ),
197200 () -> assertThat (selectStatement .getSelectStatement ()).isEqualTo ("select * from AnimalData order by id fetch first #{parameters.p1} rows only" ),
198201 () -> assertThat (selectStatement .getParameters ()).containsEntry ("p1" , 3L )
199202 );
0 commit comments