コード例 #1
0
        public void Test_CanRoute_FlushAllCall_SameCacheClientForMultipleRules()
        {
            Mock <ICacheClient> sessionClientMocker =
                new Mock <ICacheClient>(MockBehavior.Strict);

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

            sessionClientMocker.Setup(c => c.FlushAll());
            fallbackClientMocker.Setup(c => c.FlushAll());

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

            IRoutedCacheClient routedCacheClient =
                CreateRoutedCacheClient(fallbackClient,
                                        new KeyStartsWithStringCacheClientRule(sessionClient, StringComparison.InvariantCultureIgnoreCase, "xyz:"),
                                        new KeyStartsWithStringCacheClientRule(sessionClient, StringComparison.InvariantCultureIgnoreCase, "session:"));

            routedCacheClient.FlushAll();

            sessionClientMocker.Verify(c => c.FlushAll(),
                                       Times.Once);
            fallbackClientMocker.Verify(c => c.FlushAll(),
                                        Times.Once);

            sessionClientMocker.VerifyNoOtherCalls();
            fallbackClientMocker.VerifyNoOtherCalls();
        }
コード例 #2
0
        public void Test_CanRoute_FlushAllCall_UniqueCacheClients()
        {
            Mock <ICacheClient> sessionClientMocker =
                new Mock <ICacheClient>(MockBehavior.Strict);

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

            sessionClientMocker.Setup(c => c.FlushAll());
            fallbackClientMocker.Setup(c => c.FlushAll());

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

            IRoutedCacheClient routedCacheClient =
                CreateRoutedCacheClient(fallbackClient, sessionClient);

            routedCacheClient.FlushAll();

            sessionClientMocker.Verify(c => c.FlushAll(),
                                       Times.Once);
            fallbackClientMocker.Verify(c => c.FlushAll(),
                                        Times.Once);

            sessionClientMocker.VerifyNoOtherCalls();
            fallbackClientMocker.VerifyNoOtherCalls();
        }
コード例 #3
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());
        }