From c5e0d1a26ca3fbd57291fe4654ea3e13a168afd1 Mon Sep 17 00:00:00 2001 From: EugeneNik Date: Wed, 19 Jul 2017 23:49:12 +0400 Subject: [PATCH] =?UTF-8?q?DATAKV-186=20-=20=20SimpleKeyValueRepository.ex?= =?UTF-8?q?istsById(=E2=80=A6)=20now=20evaluates=20findById(=E2=80=A6)=20r?= =?UTF-8?q?esults=20properly.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ExistsById now evaluates Optional.isPresent() instead of comparing findById result to null. Original Pull Request: #24 --- .../repository/support/SimpleKeyValueRepository.java | 2 +- .../SimpleKeyValueRepositoryUnitTests.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java index 502c906..de227d6 100644 --- a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java +++ b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java @@ -132,7 +132,7 @@ public class SimpleKeyValueRepository implements Key */ @Override public boolean existsById(ID id) { - return findById(id) != null; + return findById(id).isPresent(); } /* diff --git a/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java b/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java index 0333df6..d4e358e 100644 --- a/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java +++ b/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java @@ -15,6 +15,7 @@ */ package org.springframework.data.keyvalue.repository; +import static org.junit.Assert.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; @@ -124,6 +125,17 @@ public class SimpleKeyValueRepositoryUnitTests { verify(opsMock, times(3)).findById(anyString(), eq(Foo.class)); } + @Test // DATAKV-186 + public void existsById() { + when(opsMock.findById(any(Serializable.class), any(Class.class))).thenReturn(Optional.empty()); + assertFalse(repo.existsById("one")); + + when(opsMock.findById(any(Serializable.class), any(Class.class))).thenReturn(Optional.of(new Foo())); + assertTrue(repo.existsById("one")); + + verify(opsMock, times(2)).findById(anyString(), eq(Foo.class)); + } + @Test // DATACMNS-525 public void findAllWithPageableShouldDelegateToOperationsCorrectlyWhenPageableDoesNotContainSort() {