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 502c906a..de227d61 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 Optional findById(ID id) { */ @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 0333df6f..d4e358e8 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 void findAllIds() { 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() {