public void RedisCache_Set_NotStringValue_ShouldThrowInvalidOperationException() { //--------------Arrange------------------------------ var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Set(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>())).Verifiable(); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var redis = new RedisCacheStub(() => mockConnection.Object); //--------------Act---------------------------------- redis.Set("bob", It.IsAny <string>(), It.IsAny <TimeSpan>()); //--------------Assert------------------------------- }
public void RedisCache_Set_NullKey_ShouldThrowArgumentNullException() { //--------------Arrange------------------------------ var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Set(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>())).Verifiable(); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var redis = new RedisCacheStub(() => mockConnection.Object); //--------------Act---------------------------------- redis.Set(null, string.Empty, It.IsAny <TimeSpan>()); //--------------Assert------------------------------- }
public void RedisCache_Set_StringValue_ShouldCallStringSetOnCache() { //--------------Arrange------------------------------ var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Set(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>())).Verifiable(); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var redis = new RedisCacheStub(() => mockConnection.Object); //--------------Act---------------------------------- redis.Set("bob", "the builder", It.IsAny <TimeSpan>()); //--------------Assert------------------------------- mockDatabase.Verify(db => db.Set(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>()), Times.Once); }
public void RedisCache_Decrement_ValidKey_ShouldDecrement() { //--------------Arrange------------------------------ var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Decrement("bob", "1")).Verifiable(); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var redis = new RedisCacheStub(() => mockConnection.Object); //--------------Act---------------------------------- redis.Decrement("bob", "1"); //--------------Assert------------------------------- mockDatabase.Verify(db => db.Decrement("bob", "1"), Times.Once); }
public void RedisCache_Decrement_NullKey_ShouldThrowArgumentNullException() { //--------------Arrange------------------------------ var ext = System.Threading.Tasks.TaskExtensions.Unwrap(new System.Threading.Tasks.Task <System.Threading.Tasks.Task>(() => System.Threading.Tasks.Task.FromResult(true))); var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Decrement(It.IsAny <string>(), "1")).Verifiable(); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var redis = new RedisCacheStub(() => mockConnection.Object); //--------------Act---------------------------------- redis.Decrement(null, "1"); //--------------Assert------------------------------- }
public void RedisCache_Set_DataToCacheWithNoTTL_CachedDataShouldNotExpire() { //----------------------Arrange---------------------- var mockConnection = new Mock <IRedisConnection>(); var mockDatabase = new Mock <IRedisCache>(); mockDatabase.Setup(db => db.Set(It.IsAny <string>(), It.IsAny <string>(), TimeSpan.FromMilliseconds(0))).Returns(true); mockConnection.Setup(conn => conn.Cache).Returns(mockDatabase.Object); var sut = new RedisCacheStub(() => mockConnection.Object); //----------------------Act-------------------------- var result = sut.Set("key1", "data to store in cache", TimeSpan.FromMilliseconds(0)); //----------------------Assert----------------------- Assert.IsTrue(result); }