From 2f9ca57ed5d6c228b375f465926164ed80e114d7 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 31 Jul 2020 11:39:34 +0200 Subject: [PATCH] #421 - Polishing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify tests. Use ReflectionUtils.isVoid(…) where possible and simplify isVoid(…) flows. Original pull request: #422. --- .../repository/query/AbstractR2dbcQuery.java | 4 -- .../repository/query/R2dbcQueryMethod.java | 6 +-- ...stractR2dbcRepositoryIntegrationTests.java | 49 +------------------ 3 files changed, 4 insertions(+), 55 deletions(-) diff --git a/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java b/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java index 21813398..d6e2bf32 100644 --- a/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java @@ -144,10 +144,6 @@ public abstract class AbstractR2dbcQuery implements RepositoryQuery { return (q, t, c) -> q.rowsUpdated().then(); } - if (KotlinDetector.isKotlinPresent() && Unit.class.isAssignableFrom(returnedType.getReturnedType())) { - return (q, t, c) -> q.rowsUpdated().thenReturn(Unit.INSTANCE); - } - return (q, t, c) -> q.rowsUpdated(); } diff --git a/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java index 19bf36a3..89fc7284 100644 --- a/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java @@ -17,12 +17,9 @@ package org.springframework.data.r2dbc.repository.query; import static org.springframework.data.repository.util.ClassUtils.*; -import kotlin.Unit; - import java.lang.reflect.Method; import java.util.Optional; -import org.springframework.core.KotlinDetector; import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.domain.Page; @@ -45,6 +42,7 @@ import org.springframework.data.repository.util.ReactiveWrapperConverters; import org.springframework.data.repository.util.ReactiveWrappers; import org.springframework.data.util.ClassTypeInformation; import org.springframework.data.util.Lazy; +import org.springframework.data.util.ReflectionUtils; import org.springframework.data.util.TypeInformation; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -169,7 +167,7 @@ public class R2dbcQueryMethod extends QueryMethod { Class domainClass = getDomainClass(); if (ClassUtils.isPrimitiveOrWrapper(returnedObjectType) - || KotlinDetector.isKotlinPresent() && Unit.class.isAssignableFrom(returnedObjectType)) { + || ReflectionUtils.isVoid(returnedObjectType)) { this.metadata = new SimpleRelationalEntityMetadata<>((Class) domainClass, mappingContext.getRequiredPersistentEntity(domainClass)); 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 41a4afbb..0a09b899 100644 --- a/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java @@ -17,8 +17,6 @@ package org.springframework.data.r2dbc.repository; import static org.assertj.core.api.Assertions.*; -import kotlin.Unit; - import io.r2dbc.spi.ConnectionFactory; import lombok.AllArgsConstructor; import lombok.Getter; @@ -50,7 +48,7 @@ import org.springframework.data.r2dbc.repository.support.R2dbcRepositoryFactory; import org.springframework.data.r2dbc.testing.R2dbcIntegrationTestSupport; import org.springframework.data.relational.core.mapping.Table; import org.springframework.data.repository.NoRepositoryBean; -import org.springframework.data.repository.reactive.ReactiveSortingRepository; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.transaction.reactive.TransactionalOperator; @@ -58,7 +56,6 @@ import org.springframework.transaction.reactive.TransactionalOperator; * Abstract base class for integration tests for {@link LegoSetRepository} using {@link R2dbcRepositoryFactory}. * * @author Mark Paluch - * @author Stephen Cohen */ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestSupport { @@ -314,40 +311,6 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg .verifyComplete(); } - @Test // gh-421 - public void shouldDeleteAndReturnSuccess() { - - shouldInsertNewItems(); - - repository.deleteByManualAndReturnSuccess(12) // - .as(StepVerifier::create) // - .expectNext(true) // - .verifyComplete(); - - repository.findAll() // - .map(LegoSet::getManual) // - .as(StepVerifier::create) // - .expectNext(13) // - .verifyComplete(); - } - - @Test // gh-421 - public void shouldDeleteAndReturnKotlinUnit() { - - shouldInsertNewItems(); - - repository.deleteByManualAndReturnKotlinUnit(12) // - .as(StepVerifier::create) // - .expectNext(Unit.INSTANCE) // - .verifyComplete(); - - repository.findAll() // - .map(LegoSet::getManual) // - .as(StepVerifier::create) // - .expectNext(13) // - .verifyComplete(); - } - private Condition numberOf(int expected) { return new Condition<>(it -> { return it instanceof Number && ((Number) it).intValue() == expected; @@ -355,7 +318,7 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg } @NoRepositoryBean - interface LegoSetRepository extends ReactiveSortingRepository { + interface LegoSetRepository extends ReactiveCrudRepository { Flux findByNameContains(String name); @@ -381,14 +344,6 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg @Query("DELETE from legoset") Mono deleteAllAndReturnCount(); - @Modifying - @Query("DELETE from legoset where manual = :manual") - Mono deleteByManualAndReturnSuccess(int manual); - - @Modifying - @Query("DELETE from legoset where manual = :manual") - Mono deleteByManualAndReturnKotlinUnit(int manual); - Mono countByNameContains(String namePart); }