Skip to content

Commit 1c9188f

Browse files
DATAMONGO-1712 - Polishing.
Follow ReactiveCrudRepository contract, fix spelling, update issue references and add deleteById(Publisher). Related ticket: DATACMNS-1063. Original Pull Request: #467
1 parent a2f7c3f commit 1c9188f

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java

+19
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ public Flux<T> findAllById(Publisher<ID> ids) {
180180
*/
181181
@Override
182182
public Flux<T> findAll(Sort sort) {
183+
184+
Assert.notNull(sort, "Sort must not be null!");
185+
183186
return findAll(new Query().with(sort));
184187
}
185188

@@ -204,6 +207,9 @@ public <S extends T> Flux<S> findAll(Example<S> example, Sort sort) {
204207
*/
205208
@Override
206209
public <S extends T> Flux<S> findAll(Example<S> example) {
210+
211+
Assert.notNull(example, "Example must not be null!");
212+
207213
return findAll(example, Sort.unsorted());
208214
}
209215

@@ -327,6 +333,19 @@ public Mono<Void> deleteById(ID id) {
327333
.remove(getIdQuery(id), entityInformation.getJavaType(), entityInformation.getCollectionName()).then();
328334
}
329335

336+
/*
337+
* (non-Javadoc)
338+
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteById(org.reactivestreams.Publisher)
339+
*/
340+
@Override
341+
public Mono<Void> deleteById(Publisher<ID> publisher) {
342+
343+
Assert.notNull(publisher, "Id must not be null!");
344+
345+
return Mono.from(publisher).flatMap(id -> mongoOperations.remove(getIdQuery(id), entityInformation.getJavaType(),
346+
entityInformation.getCollectionName())).then();
347+
}
348+
330349
/*
331350
* (non-Javadoc)
332351
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#delete(java.lang.Object)

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java

+19-2
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public void existsByMonoOfIdShouldReturnTrueForExistingObject() {
120120
}
121121

122122
@Test // DATAMONGO-1712
123-
public void existsByFlusOfIdShouldReturnTrueForExistingObject() {
123+
public void existsByFluxOfIdShouldReturnTrueForExistingObject() {
124124
StepVerifier.create(repository.existsById(Flux.just(dave.id, oliver.id))).expectNext(true).verifyComplete();
125125
}
126126

@@ -144,7 +144,7 @@ public void findByIdByMonoOfIdShouldReturnTrueForExistingObject() {
144144
StepVerifier.create(repository.findById(Mono.just(dave.id))).expectNext(dave).verifyComplete();
145145
}
146146

147-
@Test // DATAMONGO-1444
147+
@Test // DATAMONGO-1712
148148
public void findByIdByFluxOfIdShouldReturnTrueForExistingObject() {
149149
StepVerifier.create(repository.findById(Flux.just(dave.id, oliver.id))).expectNext(dave).verifyComplete();
150150
}
@@ -338,6 +338,23 @@ public void deleteByIdShouldRemoveEntity() {
338338
StepVerifier.create(repository.findById(dave.id)).verifyComplete();
339339
}
340340

341+
@Test // DATAMONGO-1712
342+
public void deleteByIdUsingMonoShouldRemoveEntity() {
343+
344+
StepVerifier.create(repository.deleteById(Mono.just(dave.id))).verifyComplete();
345+
346+
StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
347+
}
348+
349+
@Test // DATAMONGO-1712
350+
public void deleteByIdUsingFluxShouldRemoveEntity() {
351+
352+
StepVerifier.create(repository.deleteById(Flux.just(dave.id, oliver.id))).verifyComplete();
353+
354+
StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
355+
StepVerifier.create(repository.existsById(oliver.id)).expectNext(true).verifyComplete();
356+
}
357+
341358
@Test // DATAMONGO-1444
342359
public void deleteShouldRemoveEntity() {
343360

0 commit comments

Comments
 (0)