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