Exemplo n.º 1
0
        public void WhenTheValueIsAlreadyCached_ThenItIsNotRetrievedASecondTime()
        {
            var strategyIsUsed = false;
            var cacheProvider = new DefaultCacheProvider(new DefaultRetryPolicy(3), 10);
            var value = cacheProvider.GetValue("TEST", () => false);
            value = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return true;
            });

            Assert.That(strategyIsUsed, Is.False);
            Assert.That(value, Is.False);
        }
Exemplo n.º 2
0
        public void WhenTheValueIsAlreadyCached_ThenItIsNotRetrievedASecondTime()
        {
            var strategyIsUsed = false;
            var cacheProvider  = new DefaultCacheProvider(new DefaultRetryPolicy(3), 10);
            var value          = cacheProvider.GetValue("TEST", () => false);

            value = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return(true);
            });

            Assert.That(strategyIsUsed, Is.False);
            Assert.That(value, Is.False);
        }
Exemplo n.º 3
0
        public void WhenTheCacheExpirationPeriodHasExpired_ThenTheValueIsRetrievedUsingTheStrategy()
        {
            var strategyIsUsed = false;
            var cacheProvider = new DefaultCacheProvider(new DefaultRetryPolicy(3), 0.1);
            var value = cacheProvider.GetValue("TEST", () => false);

            Thread.Sleep(TimeSpan.FromSeconds(10));

            value = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return true;
            });

            Assert.That(strategyIsUsed, Is.True);
            Assert.That(value, Is.True);
        }
Exemplo n.º 4
0
        public void WhenTheCacheExpirationPeriodHasExpired_ThenTheValueIsRetrievedUsingTheStrategy()
        {
            var strategyIsUsed = false;
            var cacheProvider  = new DefaultCacheProvider(new DefaultRetryPolicy(3), 0.1);
            var value          = cacheProvider.GetValue("TEST", () => false);

            Thread.Sleep(TimeSpan.FromSeconds(10));

            value = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return(true);
            });

            Assert.That(strategyIsUsed, Is.True);
            Assert.That(value, Is.True);
        }
Exemplo n.º 5
0
        public void WhenTheValueIsNotCached_ThenItIsRetrievedUsingTheSpecifiedStrategy()
        {
            var strategyIsUsed = false;
            var cacheProvider = new DefaultCacheProvider(new DefaultRetryPolicy(3), 10);
            var value = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return true;
            });

            Assert.That(strategyIsUsed, Is.True);
            Assert.That(value, Is.True);
        }
Exemplo n.º 6
0
        public void WhenTheValueIsNotCached_ThenItIsRetrievedUsingTheSpecifiedStrategy()
        {
            var strategyIsUsed = false;
            var cacheProvider  = new DefaultCacheProvider(new DefaultRetryPolicy(3), 10);
            var value          = cacheProvider.GetValue("TEST", () =>
            {
                strategyIsUsed = true;
                return(true);
            });

            Assert.That(strategyIsUsed, Is.True);
            Assert.That(value, Is.True);
        }
Exemplo n.º 7
0
        public void WhenTheStrategyResultsInAnException_ThenItIsRetriedAConfigurableNumberOfTimes(int retries)
        {
            var attempts = 0;
            var cacheProvider = new DefaultCacheProvider(new DefaultRetryPolicy(retries), 0.1);

            var value = cacheProvider.GetValue<bool>("TEST", () =>
            {
                attempts++;
                if (attempts != retries) throw new Exception();
                return true;
            });

            Assert.That(attempts, Is.EqualTo(retries));
        }
Exemplo n.º 8
0
        public void WhenTheStrategyResultsInAnException_ThenItIsRetriedAConfigurableNumberOfTimes(int retries)
        {
            var attempts      = 0;
            var cacheProvider = new DefaultCacheProvider(new DefaultRetryPolicy(retries), 0.1);

            var value = cacheProvider.GetValue <bool>("TEST", () =>
            {
                attempts++;
                if (attempts != retries)
                {
                    throw new Exception();
                }
                return(true);
            });

            Assert.That(attempts, Is.EqualTo(retries));
        }