private void Assert_AllMethodsThrowObjectDisposedException(IRoutedCacheClient routedCacheClient) { Faker faker = new Faker(); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(RandomKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(SessionKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(RandomKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(SessionKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(RandomKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Add(SessionKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Decrement(RandomKey, faker.Random.UInt())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Decrement(SessionKey, faker.Random.UInt())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .FlushAll()); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .FlushAll()); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Get <string>(RandomKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Get <string>(SessionKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetAll <string>(faker.Make(faker.Random.Int(0, 100), () => RandomKey))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetAll <string>(faker.Make(faker.Random.Int(0, 100), () => SessionKeyPrefix))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetKeysByPattern(SessionKeyPrefix)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetKeysByPattern(RandomKeyPrefix)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetTimeToLive(SessionKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetTimeToLive(RandomKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Increment(RandomKey, faker.Random.UInt())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Increment(SessionKey, faker.Random.UInt())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Remove(SessionKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Remove(RandomKey)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .RemoveAll(faker.Make(faker.Random.Int(0, 100), () => RandomKey))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .RemoveAll(faker.Make(faker.Random.Int(0, 100), () => SessionKeyPrefix))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(RandomKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(SessionKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(RandomKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(SessionKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(RandomKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Replace(SessionKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(RandomKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(SessionKey, faker.Random.Int())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(RandomKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(SessionKey, faker.Random.Decimal(), faker.Date.Timespan())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(RandomKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .Set(SessionKey, faker.Random.String(), faker.Date.Future())); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .SetAll(new Dictionary <string, string>(faker.Make( faker.Random.Int(0, 100), () => new KeyValuePair <string, string>(RandomKey, faker.Random.String()) )))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .SetAll(new Dictionary <string, int>(faker.Make( faker.Random.Int(0, 100), () => new KeyValuePair <string, int>(SessionKey, faker.Random.Int()) )))); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .PushClientWithRule(new Mock <IRoutedCacheClientRule>(MockBehavior.Loose).Object)); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .ClearRules()); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetRegisteredClients()); Assert.Throws <ObjectDisposedException>(() => routedCacheClient .GetRegisteredClientRules()); }
public void Test_CanRoute_GetAll(int numSessionClientVals, int numFallbackClientVals) { Faker faker = new Faker(); Mock <ICacheClient> sessionClientMocker = new Mock <ICacheClient>(MockBehavior.Strict); Mock <ICacheClient> fallbackClientMocker = new Mock <ICacheClient>(MockBehavior.Strict); IDictionary <string, decimal> sessionValues = new Dictionary <string, decimal>(); IDictionary <string, string> fallbackValues = new Dictionary <string, string>(); for (int i = 0; i < numSessionClientVals; i++) { sessionValues[SessionKey] = faker.Random.Decimal(); } for (int i = 0; i < numFallbackClientVals; i++) { fallbackValues[RandomKey] = faker.Random.String(); } sessionClientMocker.Setup(c => c.GetAll <decimal>(sessionValues.Keys)) .Returns(sessionValues); fallbackClientMocker.Setup(c => c.GetAll <string>(fallbackValues.Keys)) .Returns(fallbackValues); ICacheClient sessionClient = sessionClientMocker.Object; ICacheClient fallbackClient = fallbackClientMocker.Object; IRoutedCacheClient routedCacheClient = CreateRoutedCacheClient(fallbackClient, sessionClient); IDictionary <string, decimal> actualSessionValues = routedCacheClient .GetAll <decimal>(sessionValues.Keys); IDictionary <string, string> actualFallbackValues = routedCacheClient .GetAll <string>(fallbackValues.Keys); CollectionAssert.AreEquivalent(sessionValues, actualSessionValues); CollectionAssert.AreEquivalent(fallbackValues, actualFallbackValues); if (numSessionClientVals > 0) { sessionClientMocker.Verify(c => c.GetAll <decimal>(sessionValues.Keys), Times.Once); } else { sessionClientMocker.Verify(c => c.GetAll <decimal>(sessionValues.Keys), Times.Never); } if (numFallbackClientVals > 0) { fallbackClientMocker.Verify(c => c.GetAll <string>(fallbackValues.Keys), Times.Once); } else { fallbackClientMocker.Verify(c => c.GetAll <string>(fallbackValues.Keys), Times.Never); } sessionClientMocker.VerifyNoOtherCalls(); fallbackClientMocker.VerifyNoOtherCalls(); }