Example #1
0
        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());
        }
Example #2
0
        public void Test_CanRoute_SetAll(int numSessionClientVals, int numFallbackClientVals)
        {
            Faker faker = new Faker();

            Mock <ICacheClient> sessionClientMocker =
                new Mock <ICacheClient>(MockBehavior.Strict);

            Mock <ICacheClient> fallbackClientMocker =
                new Mock <ICacheClient>(MockBehavior.Strict);

            Dictionary <string, decimal> sessionValues =
                new Dictionary <string, decimal>();

            Dictionary <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.SetAll(sessionValues));
            fallbackClientMocker.Setup(c => c.SetAll(fallbackValues));

            ICacheClient sessionClient  = sessionClientMocker.Object;
            ICacheClient fallbackClient = fallbackClientMocker.Object;

            IRoutedCacheClient routedCacheClient =
                CreateRoutedCacheClient(fallbackClient, sessionClient);

            routedCacheClient.SetAll(sessionValues);
            routedCacheClient.SetAll(fallbackValues);

            if (numSessionClientVals > 0)
            {
                sessionClientMocker.Verify(c => c.SetAll(sessionValues),
                                           Times.Once);
            }
            else
            {
                sessionClientMocker.Verify(c => c.SetAll(sessionValues),
                                           Times.Never);
            }

            if (numFallbackClientVals > 0)
            {
                fallbackClientMocker.Verify(c => c.SetAll(fallbackValues),
                                            Times.Once);
            }
            else
            {
                fallbackClientMocker.Verify(c => c.SetAll(fallbackValues),
                                            Times.Never);
            }

            sessionClientMocker.VerifyNoOtherCalls();
            fallbackClientMocker.VerifyNoOtherCalls();
        }