DATAMONGO-1712 - Polishing.

Follow ReactiveCrudRepository contract, fix spelling, update issue references and add deleteById(Publisher).

Related ticket: DATACMNS-1063.

Original Pull Request: #467
This commit is contained in:
Christoph Strobl
2017-06-13 10:33:58 +02:00
parent a2f7c3f482
commit 1c9188f7e1
2 changed files with 38 additions and 2 deletions

View File

@@ -180,6 +180,9 @@ public class SimpleReactiveMongoRepository<T, ID extends Serializable> implement
*/ */
@Override @Override
public Flux<T> findAll(Sort sort) { public Flux<T> findAll(Sort sort) {
Assert.notNull(sort, "Sort must not be null!");
return findAll(new Query().with(sort)); return findAll(new Query().with(sort));
} }
@@ -204,6 +207,9 @@ public class SimpleReactiveMongoRepository<T, ID extends Serializable> implement
*/ */
@Override @Override
public <S extends T> Flux<S> findAll(Example<S> example) { public <S extends T> Flux<S> findAll(Example<S> example) {
Assert.notNull(example, "Example must not be null!");
return findAll(example, Sort.unsorted()); return findAll(example, Sort.unsorted());
} }
@@ -327,6 +333,19 @@ public class SimpleReactiveMongoRepository<T, ID extends Serializable> implement
.remove(getIdQuery(id), entityInformation.getJavaType(), entityInformation.getCollectionName()).then(); .remove(getIdQuery(id), entityInformation.getJavaType(), entityInformation.getCollectionName()).then();
} }
/*
* (non-Javadoc)
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteById(org.reactivestreams.Publisher)
*/
@Override
public Mono<Void> deleteById(Publisher<ID> publisher) {
Assert.notNull(publisher, "Id must not be null!");
return Mono.from(publisher).flatMap(id -> mongoOperations.remove(getIdQuery(id), entityInformation.getJavaType(),
entityInformation.getCollectionName())).then();
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#delete(java.lang.Object) * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#delete(java.lang.Object)

View File

@@ -120,7 +120,7 @@ public class SimpleReactiveMongoRepositoryTests implements BeanClassLoaderAware,
} }
@Test // DATAMONGO-1712 @Test // DATAMONGO-1712
public void existsByFlusOfIdShouldReturnTrueForExistingObject() { public void existsByFluxOfIdShouldReturnTrueForExistingObject() {
StepVerifier.create(repository.existsById(Flux.just(dave.id, oliver.id))).expectNext(true).verifyComplete(); StepVerifier.create(repository.existsById(Flux.just(dave.id, oliver.id))).expectNext(true).verifyComplete();
} }
@@ -144,7 +144,7 @@ public class SimpleReactiveMongoRepositoryTests implements BeanClassLoaderAware,
StepVerifier.create(repository.findById(Mono.just(dave.id))).expectNext(dave).verifyComplete(); StepVerifier.create(repository.findById(Mono.just(dave.id))).expectNext(dave).verifyComplete();
} }
@Test // DATAMONGO-1444 @Test // DATAMONGO-1712
public void findByIdByFluxOfIdShouldReturnTrueForExistingObject() { public void findByIdByFluxOfIdShouldReturnTrueForExistingObject() {
StepVerifier.create(repository.findById(Flux.just(dave.id, oliver.id))).expectNext(dave).verifyComplete(); StepVerifier.create(repository.findById(Flux.just(dave.id, oliver.id))).expectNext(dave).verifyComplete();
} }
@@ -338,6 +338,23 @@ public class SimpleReactiveMongoRepositoryTests implements BeanClassLoaderAware,
StepVerifier.create(repository.findById(dave.id)).verifyComplete(); StepVerifier.create(repository.findById(dave.id)).verifyComplete();
} }
@Test // DATAMONGO-1712
public void deleteByIdUsingMonoShouldRemoveEntity() {
StepVerifier.create(repository.deleteById(Mono.just(dave.id))).verifyComplete();
StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
}
@Test // DATAMONGO-1712
public void deleteByIdUsingFluxShouldRemoveEntity() {
StepVerifier.create(repository.deleteById(Flux.just(dave.id, oliver.id))).verifyComplete();
StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
StepVerifier.create(repository.existsById(oliver.id)).expectNext(true).verifyComplete();
}
@Test // DATAMONGO-1444 @Test // DATAMONGO-1444
public void deleteShouldRemoveEntity() { public void deleteShouldRemoveEntity() {