From b6c7e4a615ba0e4af52263f5bebfc1c308698610 Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Tue, 7 May 2024 06:39:19 +0100 Subject: [PATCH] Refine contribution #4585 - Update Javadocs - Update tests --- .../builder/JdbcCursorItemReaderBuilder.java | 1 + .../builder/JdbcPagingItemReaderBuilder.java | 1 + .../JdbcCursorItemReaderBuilderTests.java | 56 ++++++++++--------- .../JdbcPagingItemReaderBuilderTests.java | 10 ++-- 4 files changed, 36 insertions(+), 32 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilder.java index 69903eddb..a4014536d 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilder.java @@ -319,6 +319,7 @@ public class JdbcCursorItemReaderBuilder { * @param mappedClass the class for the row mapper * @return this instance for method chaining * @see DataClassRowMapper + * @since 5.2 */ public JdbcCursorItemReaderBuilder dataRowMapper(Class mappedClass) { this.rowMapper = new DataClassRowMapper<>(mappedClass); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilder.java index 0dc527902..408263ea4 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilder.java @@ -193,6 +193,7 @@ public class JdbcPagingItemReaderBuilder { * @param mappedClass the class for the row mapper * @return this instance for method chaining * @see DataClassRowMapper + * @since 5.2 */ public JdbcPagingItemReaderBuilder dataRowMapper(Class mappedClass) { this.rowMapper = new DataClassRowMapper<>(mappedClass); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilderTests.java index ba2566326..16e33c610 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcCursorItemReaderBuilderTests.java @@ -329,33 +329,36 @@ class JdbcCursorItemReaderBuilderTests { assertEquals("A rowmapper is required", exception.getMessage()); } + @Test + void testDataRowMapper() throws Exception { + JdbcCursorItemReader reader = new JdbcCursorItemReaderBuilder().name("barReader") + .dataSource(this.dataSource) + .sql("SELECT * FROM BAR ORDER BY FIRST") + .dataRowMapper(Bar.class) + .build(); + + reader.afterPropertiesSet(); + + reader.open(new ExecutionContext()); + + validateBar(reader.read(), 0, 1, "2", "3"); + validateBar(reader.read(), 1, 4, "5", "6"); + validateBar(reader.read(), 2, 7, "8", "9"); + + assertNull(reader.read()); + } + private void validateFoo(Foo item, int first, String second, String third) { assertEquals(first, item.getFirst()); assertEquals(second, item.getSecond()); assertEquals(third, item.getThird()); } - @Test - void testDataRowMapper() throws Exception { - JdbcCursorItemReader reader = new JdbcCursorItemReaderBuilder() - .name("barReader") - .dataSource(this.dataSource) - .currentItemCount(1) - .maxItemCount(2) - .sql("SELECT ID, FIRST, SECOND, THIRD FROM BAR ORDER BY ID DESC") - .dataRowMapper(Bar.class) - .build(); - - reader.afterPropertiesSet(); - - reader.open(new ExecutionContext()); - Bar item1 = reader.read(); - assertNull(reader.read()); - - assertEquals(3, item1.id()); - assertEquals(10, item1.first()); - assertEquals("11", item1.second()); - assertEquals("12", item1.third()); + private void validateBar(Bar item, int id, int first, String second, String third) { + assertEquals(id, item.id()); + assertEquals(first, item.first()); + assertEquals(second, item.second()); + assertEquals(third, item.third()); } public static class Foo { @@ -392,7 +395,8 @@ class JdbcCursorItemReaderBuilderTests { } - public record Bar(int id, int first, String second, String third) {} + public record Bar(int id, int first, String second, String third) { + } @Configuration public static class TestDataSourceConfiguration { @@ -403,7 +407,7 @@ class JdbcCursorItemReaderBuilderTests { FIRST BIGINT , SECOND VARCHAR(5) NOT NULL, THIRD VARCHAR(5) NOT NULL); - + CREATE TABLE BAR ( ID BIGINT IDENTITY NOT NULL PRIMARY KEY , FIRST BIGINT , @@ -414,12 +418,10 @@ class JdbcCursorItemReaderBuilderTests { INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (1, '2', '3'); INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (4, '5', '6'); INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (7, '8', '9'); - + INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (1, '2', '3'); INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (4, '5', '6'); - INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (7, '8', '9'); - INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (10, '11', '12'); - INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (13, '14', '15');"""; + INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (7, '8', '9');"""; @Bean public DataSource dataSource() { diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilderTests.java index 8061442cb..a6220cbeb 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/builder/JdbcPagingItemReaderBuilderTests.java @@ -268,8 +268,7 @@ class JdbcPagingItemReaderBuilderTests { Map sortKeys = new HashMap<>(1); sortKeys.put("ID", Order.DESCENDING); - JdbcPagingItemReader reader = new JdbcPagingItemReaderBuilder() - .name("barReader") + JdbcPagingItemReader reader = new JdbcPagingItemReaderBuilder().name("barReader") .dataSource(this.dataSource) .currentItemCount(1) .maxItemCount(2) @@ -383,7 +382,8 @@ class JdbcPagingItemReaderBuilderTests { } - public record Bar(int id, int first, String second, String third) {} + public record Bar(int id, int first, String second, String third) { + } @Configuration public static class TestDataSourceConfiguration { @@ -394,7 +394,7 @@ class JdbcPagingItemReaderBuilderTests { FIRST BIGINT , SECOND VARCHAR(5) NOT NULL, THIRD VARCHAR(5) NOT NULL) ; - + CREATE TABLE BAR ( ID BIGINT IDENTITY NOT NULL PRIMARY KEY , FIRST BIGINT , @@ -407,7 +407,7 @@ class JdbcPagingItemReaderBuilderTests { INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (7, '8', '9'); INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (10, '11', '12'); INSERT INTO FOO (FIRST, SECOND, THIRD) VALUES (13, '14', '15'); - + INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (1, '2', '3'); INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (4, '5', '6'); INSERT INTO BAR (FIRST, SECOND, THIRD) VALUES (7, '8', '9');