Esempio n. 1
0
        public async Task CreateValidCacheable()
        {
            var control = new CacheableControl(new CacheableFactoryStub(), new CacheableExpirePolicyStub(TimeSpan.FromDays(1).TotalSeconds));

            var cacheable = await control.Get("abc");

            Assert.NotNull(cacheable);
        }
Esempio n. 2
0
        public async Task RequestForDifferentKeysGettingDifferentObjects()
        {
            var control = new CacheableControl(new CacheableFactoryStub(), new CacheableExpirePolicyStub(TimeSpan.FromDays(1).TotalSeconds));

            var expected = await control.Get("abc");

            var actual = await control.Get("xyz");

            Assert.NotEqual(expected, actual);
        }
Esempio n. 3
0
        public async Task RequestForSameKeyGettingSameObject()
        {
            var control = new CacheableControl(new CacheableFactoryStub(), new CacheableExpirePolicyStub(TimeSpan.FromDays(1).TotalSeconds));

            var expected = await control.Get("abc");

            var actual = await control.Get("abc");

            Assert.Equal(expected, actual);
        }
Esempio n. 4
0
        public async Task RequestForSameKeyWaiExpiresGettingDifferentObject()
        {
            var control = new CacheableControl(new CacheableFactoryStub(), new CacheableExpirePolicyStub(1));

            var expected = await control.Get("abc");

            await Task.Delay(2000);

            var actual = await control.Get("abc");

            Assert.NotEqual(expected, actual);
        }
Esempio n. 5
0
        public void RequestFromMultipleReaders()
        {
            var    control = new CacheableControl(new CacheableFactoryStub(), new CacheableExpirePolicyStub(1));
            Random r       = new Random();

            Parallel.For(1, 20000, async a =>
            {
                var reader = new Reader(control);
                await reader.Read();
            });

            Assert.True(true);
        }
Esempio n. 6
0
 public Reader(CacheableControl Control)
 {
     this.Control = Control;
 }