From a2f7c3f48220abc0fbe2499c72007a61cef91e5f Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 9 Jun 2017 11:30:19 +0200 Subject: [PATCH] DATAMONGO-1712 - Adopt to ReactiveCrudRepository.findById(Publisher) and existsById(Publisher). Related ticket: DATACMNS-1063. Original Pull Request: #467 --- .../support/SimpleReactiveMongoRepository.java | 16 ++++++++-------- .../SimpleReactiveMongoRepositoryTests.java | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java index 9560f9e6a..d513ddd19 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java @@ -67,14 +67,14 @@ public class SimpleReactiveMongoRepository implement /* * (non-Javadoc) - * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(reactor.core.publisher.Mono) + * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(org.reactivestreams.Publisher) */ @Override - public Mono findById(Mono mono) { + public Mono findById(Publisher publisher) { - Assert.notNull(mono, "The given id must not be null!"); + Assert.notNull(publisher, "The given id must not be null!"); - return mono.flatMap( + return Mono.from(publisher).flatMap( id -> mongoOperations.findById(id, entityInformation.getJavaType(), entityInformation.getCollectionName())); } @@ -115,14 +115,14 @@ public class SimpleReactiveMongoRepository implement /* * (non-Javadoc) - * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(reactor.core.publisher.Mono) + * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(org.reactivestreams.Publisher) */ @Override - public Mono existsById(Mono mono) { + public Mono existsById(Publisher publisher) { - Assert.notNull(mono, "The given id must not be null!"); + Assert.notNull(publisher, "The given id must not be null!"); - return mono.flatMap(id -> mongoOperations.exists(getIdQuery(id), entityInformation.getJavaType(), + return Mono.from(publisher).flatMap(id -> mongoOperations.exists(getIdQuery(id), entityInformation.getJavaType(), entityInformation.getCollectionName())); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java index 660548a03..152472636 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java @@ -119,28 +119,38 @@ public class SimpleReactiveMongoRepositoryTests implements BeanClassLoaderAware, StepVerifier.create(repository.existsById(Mono.just(dave.id))).expectNext(true).verifyComplete(); } + @Test // DATAMONGO-1712 + public void existsByFlusOfIdShouldReturnTrueForExistingObject() { + StepVerifier.create(repository.existsById(Flux.just(dave.id, oliver.id))).expectNext(true).verifyComplete(); + } + @Test // DATAMONGO-1444 public void existsByEmptyMonoOfIdShouldReturnEmptyMono() { StepVerifier.create(repository.existsById(Mono.empty())).verifyComplete(); } @Test // DATAMONGO-1444 - public void findOneShouldReturnObject() { + public void findByIdShouldReturnObject() { StepVerifier.create(repository.findById(dave.id)).expectNext(dave).verifyComplete(); } @Test // DATAMONGO-1444 - public void findOneShouldCompleteWithoutValueForAbsentObject() { + public void findByIdShouldCompleteWithoutValueForAbsentObject() { StepVerifier.create(repository.findById("unknown")).verifyComplete(); } @Test // DATAMONGO-1444 - public void findOneByMonoOfIdShouldReturnTrueForExistingObject() { + public void findByIdByMonoOfIdShouldReturnTrueForExistingObject() { StepVerifier.create(repository.findById(Mono.just(dave.id))).expectNext(dave).verifyComplete(); } @Test // DATAMONGO-1444 - public void findOneByEmptyMonoOfIdShouldReturnEmptyMono() { + public void findByIdByFluxOfIdShouldReturnTrueForExistingObject() { + StepVerifier.create(repository.findById(Flux.just(dave.id, oliver.id))).expectNext(dave).verifyComplete(); + } + + @Test // DATAMONGO-1444 + public void findByIdByEmptyMonoOfIdShouldReturnEmptyMono() { StepVerifier.create(repository.findById(Mono.empty())).verifyComplete(); }