// i dont know how to use the As<T> method //[Fact] public void should_add_null_string_if_value_is_null_moq() { //ClientManagerMock = new Mock<IRedisClientsManager>(); //var cacheMock = new Mock<ICacheClient>(); //RedisClientMock = cacheMock.As<IRedisClient>(); var cacheMock = RedisClientMock.As<ICacheClient>(); var cacheClient = new RedisCacheHelper(); //RedisClientMock.As<ICacheClient>(); Mock.Get<ICacheClient>(cacheMock.Object).Setup(x => x.Add(DEFAULT_KEY, RedisCacheHelper.NULL_DATA)).Returns(true); //setup ClientManagerMock.Setup(x => x.GetClient()).Returns(RedisClientMock.Object); //var cacheClient = RedisClientMock as Mock<ICacheClient>; cacheMock.Setup(x => x.Add(DEFAULT_KEY, It.Is<String>(m => m.EqualsOrdinalIgnoreCase(RedisCacheHelper.NULL_DATA)))).Returns(true); //RedisClientMock.Setup(x => x.IncrementValue(It.IsAny<string>())); RedisCacheHelper._redisClientManager = ClientManagerMock.Object; // call service cacheClient.AddNullableData(DEFAULT_KEY, default(String), 20); //verify //cacheMock.Verify(x => x.Add(DEFAULT_KEY, It.Is<String>(m => m.EqualsOrdinalIgnoreCase(RedisCacheHelper.NULL_DATA)))); cacheMock.Verify(x => x.Add<String>(DEFAULT_KEY, It.Is<String>(m => m.EqualsOrdinalIgnoreCase(RedisCacheHelper.NULL_DATA))), Times.Once()); // for the redisfact uts RedisCacheHelper._redisClientManager = null; }