Skip to content

Commit 2f9ca57

Browse files
committed
#421 - Polishing.
Simplify tests. Use ReflectionUtils.isVoid(…) where possible and simplify isVoid(…) flows. Original pull request: #422.
1 parent 748d6c3 commit 2f9ca57

File tree

3 files changed

+4
-55
lines changed

3 files changed

+4
-55
lines changed

src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java

-4
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,6 @@ private R2dbcQueryExecution getExecutionToWrap(ReturnedType returnedType) {
144144
return (q, t, c) -> q.rowsUpdated().then();
145145
}
146146

147-
if (KotlinDetector.isKotlinPresent() && Unit.class.isAssignableFrom(returnedType.getReturnedType())) {
148-
return (q, t, c) -> q.rowsUpdated().thenReturn(Unit.INSTANCE);
149-
}
150-
151147
return (q, t, c) -> q.rowsUpdated();
152148
}
153149

src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@
1717

1818
import static org.springframework.data.repository.util.ClassUtils.*;
1919

20-
import kotlin.Unit;
21-
2220
import java.lang.reflect.Method;
2321
import java.util.Optional;
2422

25-
import org.springframework.core.KotlinDetector;
2623
import org.springframework.core.annotation.AnnotatedElementUtils;
2724
import org.springframework.dao.InvalidDataAccessApiUsageException;
2825
import org.springframework.data.domain.Page;
@@ -45,6 +42,7 @@
4542
import org.springframework.data.repository.util.ReactiveWrappers;
4643
import org.springframework.data.util.ClassTypeInformation;
4744
import org.springframework.data.util.Lazy;
45+
import org.springframework.data.util.ReflectionUtils;
4846
import org.springframework.data.util.TypeInformation;
4947
import org.springframework.lang.Nullable;
5048
import org.springframework.util.Assert;
@@ -169,7 +167,7 @@ public RelationalEntityMetadata<?> getEntityInformation() {
169167
Class<?> domainClass = getDomainClass();
170168

171169
if (ClassUtils.isPrimitiveOrWrapper(returnedObjectType)
172-
|| KotlinDetector.isKotlinPresent() && Unit.class.isAssignableFrom(returnedObjectType)) {
170+
|| ReflectionUtils.isVoid(returnedObjectType)) {
173171

174172
this.metadata = new SimpleRelationalEntityMetadata<>((Class<Object>) domainClass,
175173
mappingContext.getRequiredPersistentEntity(domainClass));

src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java

+2-47
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
import static org.assertj.core.api.Assertions.*;
1919

20-
import kotlin.Unit;
21-
2220
import io.r2dbc.spi.ConnectionFactory;
2321
import lombok.AllArgsConstructor;
2422
import lombok.Getter;
@@ -50,15 +48,14 @@
5048
import org.springframework.data.r2dbc.testing.R2dbcIntegrationTestSupport;
5149
import org.springframework.data.relational.core.mapping.Table;
5250
import org.springframework.data.repository.NoRepositoryBean;
53-
import org.springframework.data.repository.reactive.ReactiveSortingRepository;
51+
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
5452
import org.springframework.jdbc.core.JdbcTemplate;
5553
import org.springframework.transaction.reactive.TransactionalOperator;
5654

5755
/**
5856
* Abstract base class for integration tests for {@link LegoSetRepository} using {@link R2dbcRepositoryFactory}.
5957
*
6058
* @author Mark Paluch
61-
* @author Stephen Cohen
6259
*/
6360
public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestSupport {
6461

@@ -314,48 +311,14 @@ public void shouldDeleteAllAndReturnCount() {
314311
.verifyComplete();
315312
}
316313

317-
@Test // gh-421
318-
public void shouldDeleteAndReturnSuccess() {
319-
320-
shouldInsertNewItems();
321-
322-
repository.deleteByManualAndReturnSuccess(12) //
323-
.as(StepVerifier::create) //
324-
.expectNext(true) //
325-
.verifyComplete();
326-
327-
repository.findAll() //
328-
.map(LegoSet::getManual) //
329-
.as(StepVerifier::create) //
330-
.expectNext(13) //
331-
.verifyComplete();
332-
}
333-
334-
@Test // gh-421
335-
public void shouldDeleteAndReturnKotlinUnit() {
336-
337-
shouldInsertNewItems();
338-
339-
repository.deleteByManualAndReturnKotlinUnit(12) //
340-
.as(StepVerifier::create) //
341-
.expectNext(Unit.INSTANCE) //
342-
.verifyComplete();
343-
344-
repository.findAll() //
345-
.map(LegoSet::getManual) //
346-
.as(StepVerifier::create) //
347-
.expectNext(13) //
348-
.verifyComplete();
349-
}
350-
351314
private Condition<? super Object> numberOf(int expected) {
352315
return new Condition<>(it -> {
353316
return it instanceof Number && ((Number) it).intValue() == expected;
354317
}, "Number %d", expected);
355318
}
356319

357320
@NoRepositoryBean
358-
interface LegoSetRepository extends ReactiveSortingRepository<LegoSet, Integer> {
321+
interface LegoSetRepository extends ReactiveCrudRepository<LegoSet, Integer> {
359322

360323
Flux<LegoSet> findByNameContains(String name);
361324

@@ -381,14 +344,6 @@ interface LegoSetRepository extends ReactiveSortingRepository<LegoSet, Integer>
381344
@Query("DELETE from legoset")
382345
Mono<Integer> deleteAllAndReturnCount();
383346

384-
@Modifying
385-
@Query("DELETE from legoset where manual = :manual")
386-
Mono<Boolean> deleteByManualAndReturnSuccess(int manual);
387-
388-
@Modifying
389-
@Query("DELETE from legoset where manual = :manual")
390-
Mono<Unit> deleteByManualAndReturnKotlinUnit(int manual);
391-
392347
Mono<Integer> countByNameContains(String namePart);
393348
}
394349

0 commit comments

Comments
 (0)