diff --git a/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java b/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java index 70025747b..cea72645c 100644 --- a/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java +++ b/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java @@ -44,6 +44,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.springframework.cache.Cache; +import org.springframework.cache.Cache.ValueRetrievalException; import org.springframework.cache.Cache.ValueWrapper; import org.springframework.data.redis.ConnectionFactoryTracker; import org.springframework.data.redis.ObjectFactory; @@ -302,21 +303,18 @@ public class RedisCacheTest extends AbstractNativeCacheTest { assertThat(wrapper.get(), equalTo(value)); } - @Test // DATAREDIS-510 + @Test(expected = IllegalArgumentException.class) // DATAREDIS-510, DATAREDIS-606 public void cachePutWithNullShouldNotAddStuffToRedis() { assumeThat(getAllowCacheNullValues(), is(false)); Object key = getKey(); - Object value = getValue(); cache.put(key, null); - - assertThat(cache.get(key), is(nullValue())); } - @Test // DATAREDIS-510 - public void cachePutWithNullShouldRemoveKeyIfExists() { + @Test // DATAREDIS-510, DATAREDIS-606 + public void cachePutWithNullShouldErrorAndLeaveExistingKeyUntouched() { assumeThat(getAllowCacheNullValues(), is(false)); @@ -327,9 +325,13 @@ public class RedisCacheTest extends AbstractNativeCacheTest { assertThat(cache.get(key).get(), is(equalTo(value))); - cache.put(key, null); + try { + cache.put(key, null); + } catch (IllegalArgumentException e) { + // forget this one. + } - assertThat(cache.get(key), is(nullValue())); + assertThat(cache.get(key).get(), is(equalTo(value))); } @Test // DATAREDIS-443, DATAREDIS-452 @@ -372,7 +374,7 @@ public class RedisCacheTest extends AbstractNativeCacheTest { assertThat(cache.get(key).get(), is(nullValue())); } - @Test // DATAREDIS-553 + @Test(expected = ValueRetrievalException.class) // DATAREDIS-553, DATAREDIS-606 public void testCacheGetSynchronizedNullNotAllowingNull() { assumeThat(getAllowCacheNullValues(), is(false)); @@ -386,9 +388,6 @@ public class RedisCacheTest extends AbstractNativeCacheTest { return null; } }); - - assertThat(value, is(nullValue())); - assertThat(cache.get(key), is(nullValue())); } @Test // DATAREDIS-553 diff --git a/src/test/java/org/springframework/data/redis/cache/RedisCacheUnitTests.java b/src/test/java/org/springframework/data/redis/cache/RedisCacheUnitTests.java index 0bb060bf6..836a639c6 100644 --- a/src/test/java/org/springframework/data/redis/cache/RedisCacheUnitTests.java +++ b/src/test/java/org/springframework/data/redis/cache/RedisCacheUnitTests.java @@ -34,6 +34,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.cache.Cache; +import org.springframework.cache.Cache.ValueRetrievalException; import org.springframework.cache.support.NullValue; import org.springframework.data.redis.RedisSystemException; import org.springframework.data.redis.connection.RedisClusterConnection; @@ -209,9 +210,9 @@ public class RedisCacheUnitTests { }); } - @Test // DATAREDIS-553 + @Test(expected = ValueRetrievalException.class) // DATAREDIS-553, DATAREDIS-606 @SuppressWarnings("unchecked") - public void getWithCallableShouldStoreNullNotAllowingNull() throws ClassNotFoundException { + public void getWithCallableShouldThrowExceptionSotringNullWhenNotAllowingNull() throws ClassNotFoundException { cache = new RedisCache(CACHE_NAME, NO_PREFIX_BYTES, templateSpy, 0L, false); @@ -221,11 +222,6 @@ public class RedisCacheUnitTests { return null; } }); - - verify(connectionMock).get(eq(KEY_BYTES)); - verify(connectionMock).multi(); - verify(connectionMock).del(eq(KEY_BYTES)); - verify(connectionMock).exec(); } @Test // DATAREDIS-553