From b1e97035f21a25c33da415fdacc27c2b9e4ea991 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 12 Jul 2019 15:30:10 +0200 Subject: [PATCH] #140 - Polishing. Reduce assertions on numeric fields to contain a Number subtype. --- .gitignore | 1 + ...bstractDatabaseClientIntegrationTests.java | 21 ++++++++++++------- ...ctionalDatabaseClientIntegrationTests.java | 11 ++++++++-- ...stractR2dbcRepositoryIntegrationTests.java | 9 +++++++- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 646c021fa..6d0cb1ce1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ target/ .sonar4clipse *.sonar4clipseExternals *.graphml +*.json diff --git a/src/test/java/org/springframework/data/r2dbc/core/AbstractDatabaseClientIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/core/AbstractDatabaseClientIntegrationTests.java index 1c1f3515f..003a3258d 100644 --- a/src/test/java/org/springframework/data/r2dbc/core/AbstractDatabaseClientIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/core/AbstractDatabaseClientIntegrationTests.java @@ -25,6 +25,7 @@ import reactor.test.StepVerifier; import javax.sql.DataSource; +import org.assertj.core.api.Condition; import org.junit.Before; import org.junit.Test; @@ -110,7 +111,7 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr .expectNext(1) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-2 @@ -121,9 +122,9 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr executeInsert(); databaseClient.execute(getInsertIntoLegosetStatement()) // - .bind(0, 42055) // - .bind(1, "SCHAUFELRADBAGGER") // - .bindNull(2, Integer.class) // + .bind("id", 42055) // + .bind("name", "SCHAUFELRADBAGGER") // + .bindNull("manual", Integer.class) // .fetch().rowsUpdated() // .as(StepVerifier::create) // .expectErrorSatisfies(exception -> assertThat(exception) // @@ -166,7 +167,7 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr .expectNext(1) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-2 @@ -182,7 +183,7 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr .as(StepVerifier::create) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-2 @@ -203,7 +204,7 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr .expectNext(1) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-64 @@ -456,6 +457,12 @@ public abstract class AbstractDatabaseClientIntegrationTests extends R2dbcIntegr .verifyComplete(); } + private Condition numberOf(int expected) { + return new Condition<>(it -> { + return it instanceof Number && ((Number) it).intValue() == expected; + }, "Number %d", expected); + } + @Data @Table("legoset") static class LegoSet { diff --git a/src/test/java/org/springframework/data/r2dbc/core/AbstractTransactionalDatabaseClientIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/core/AbstractTransactionalDatabaseClientIntegrationTests.java index 37a5f9a57..4d4f1158b 100644 --- a/src/test/java/org/springframework/data/r2dbc/core/AbstractTransactionalDatabaseClientIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/core/AbstractTransactionalDatabaseClientIntegrationTests.java @@ -24,6 +24,7 @@ import java.util.Queue; import java.util.concurrent.ArrayBlockingQueue; import io.r2dbc.spi.ConnectionFactory; +import org.assertj.core.api.Condition; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -156,7 +157,7 @@ public abstract class AbstractTransactionalDatabaseClientIntegrationTests extend .expectNext(1) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-2 @@ -174,7 +175,7 @@ public abstract class AbstractTransactionalDatabaseClientIntegrationTests extend .expectNext(1) // .verifyComplete(); - assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).containsEntry("id", 42055); + assertThat(jdbc.queryForMap("SELECT id, name, manual FROM legoset")).hasEntrySatisfying("id", numberOf(42055)); } @Test // gh-2 @@ -313,6 +314,12 @@ public abstract class AbstractTransactionalDatabaseClientIntegrationTests extend assertThat(count).isEqualTo(0); } + private Condition numberOf(int expected) { + return new Condition<>(it -> { + return it instanceof Number && ((Number) it).intValue() == expected; + }, "Number %d", expected); + } + @Configuration @EnableTransactionManagement static class Config extends AbstractR2dbcConfiguration { diff --git a/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java index 590167db6..ba746771e 100644 --- a/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java @@ -32,6 +32,7 @@ import java.util.Map; import javax.sql.DataSource; +import org.assertj.core.api.Condition; import org.junit.Before; import org.junit.Test; @@ -198,7 +199,13 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg nonTransactional.as(StepVerifier::create).expectNext(Collections.singletonMap("count", 2L)).verifyComplete(); Map count = jdbc.queryForMap("SELECT count(*) AS count FROM legoset"); - assertThat(count).containsEntry("count", 2L); + assertThat(count).hasEntrySatisfying("count", numberOf(2)); + } + + private Condition numberOf(int expected) { + return new Condition<>(it -> { + return it instanceof Number && ((Number) it).intValue() == expected; + }, "Number %d", expected); } @NoRepositoryBean