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_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); }