From af85b46e7d719bd4842b4ebd7ee707ff51274af1 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 5 May 2017 14:41:47 +0200 Subject: [PATCH] DATAMONGO-1685 - Adapt to QueryByExampleExecutor API changes. Use Optional as return type for findOne(Example example). Related ticket: DATACMNS-1058. Original pull request: #460. --- .../mongodb/repository/support/SimpleMongoRepository.java | 5 +++-- .../repository/ContactRepositoryIntegrationTests.java | 3 ++- .../repository/support/SimpleMongoRepositoryTests.java | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java index 1e0830d71..3ea1c4573 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java @@ -312,12 +312,13 @@ public class SimpleMongoRepository implements MongoRepository { * @see org.springframework.data.repository.query.QueryByExampleExecutor#findOne(org.springframework.data.domain.Example) */ @Override - public S findOne(Example example) { + public Optional findOne(Example example) { Assert.notNull(example, "Sample must not be null!"); Query q = new Query(new Criteria().alike(example)); - return mongoOperations.findOne(q, example.getProbeType(), entityInformation.getCollectionName()); + return Optional + .ofNullable(mongoOperations.findOne(q, example.getProbeType(), entityInformation.getCollectionName())); } /* diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ContactRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ContactRepositoryIntegrationTests.java index 035050de3..5918016bc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ContactRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ContactRepositoryIntegrationTests.java @@ -31,6 +31,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; * * @author Oliver Gierke * @author Mark Paluch + * @author Christoph Strobl */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("config/MongoNamespaceIntegrationTests-context.xml") @@ -57,6 +58,6 @@ public class ContactRepositoryIntegrationTests { Person person = repository.save(new Person("Oliver", "Gierke")); - assertThat(repository.findOne(Example.of(person)), instanceOf(Person.class)); + assertThat(repository.findOne(Example.of(person)).get(), instanceOf(Person.class)); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java index 044df3a87..88b2a02f8 100755 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java @@ -29,6 +29,7 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; +import org.assertj.core.api.Assertions; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -376,9 +377,9 @@ public class SimpleMongoRepositoryTests { sample.setLastname("Matthews"); trimDomainType(sample, "id", "createdAt", "email"); - Person result = repository.findOne(Example.of(sample)); + Optional result = repository.findOne(Example.of(sample)); - assertThat(result, is(equalTo(dave))); + Assertions.assertThat(result).isPresent().contains(dave); } @Test // DATAMONGO-1245