diff --git a/StackExchange.Redis.Tests/Values.cs b/StackExchange.Redis.Tests/Values.cs
new file mode 100644
index 000000000..42dd9834f
--- /dev/null
+++ b/StackExchange.Redis.Tests/Values.cs
@@ -0,0 +1,34 @@
+using System.Linq;
+using System.Text;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace StackExchange.Redis.Tests
+{
+ public class Values : TestBase
+ {
+ public Values(ITestOutputHelper output) : base (output) { }
+
+ [Fact]
+ public void NullValueChecks()
+ {
+ RedisValue four = 4;
+ Assert.False(four.IsNull);
+ Assert.True(four.IsInteger);
+ Assert.True(four.HasValue);
+ Assert.False(four.IsNullOrEmpty);
+
+ RedisValue n = default(RedisValue);
+ Assert.True(n.IsNull);
+ Assert.False(n.IsInteger);
+ Assert.False(n.HasValue);
+ Assert.True(n.IsNullOrEmpty);
+
+ RedisValue emptyArr = new byte[0];
+ Assert.False(emptyArr.IsNull);
+ Assert.False(emptyArr.IsInteger);
+ Assert.False(emptyArr.HasValue);
+ Assert.True(emptyArr.IsNullOrEmpty);
+ }
+ }
+}
diff --git a/StackExchange.Redis/StackExchange/Redis/RedisValue.cs b/StackExchange.Redis/StackExchange/Redis/RedisValue.cs
index e8dd5a313..9ae6a9b66 100644
--- a/StackExchange.Redis/StackExchange/Redis/RedisValue.cs
+++ b/StackExchange.Redis/StackExchange/Redis/RedisValue.cs
@@ -47,9 +47,9 @@ private RedisValue(long valueInt64, byte[] valueBlob)
public bool IsNullOrEmpty => valueBlob == null || (valueBlob.Length == 0 && !(valueBlob == IntegerSentinel));
///
- /// Indicates whether the value is greater than zero-length
+ /// Indicates whether the value is greater than zero-length or has an integer value
///
- public bool HasValue => valueBlob?.Length > 0;
+ public bool HasValue => !IsNullOrEmpty;
///
/// Indicates whether two RedisValue values are equivalent