Esempio n. 1
0
        public void Cache_Timeout_test()
        {
            var cache = Container.Resolve <IEntityCache>();

            var msr = new ManualResetEvent(false);

            Task.Run(async() =>
            {
                var c2 = new CacheTest2
                {
                    Field = "FJK"
                };

                await cache.SetEntity("FJK", c2);

                var beforeTimeout = await cache.GetEntity <CacheTest2>("FJK", TimeSpan.FromSeconds(1));

                await Task.Delay(2000);
                var afterTimeout = await cache.GetEntity <CacheTest2>("FJK", TimeSpan.FromSeconds(1));

                Assert.IsNotNull(beforeTimeout);
                Assert.IsNull(afterTimeout);
                msr.Set();
            });

            var msrResult = msr.WaitOne(3000);

            Assert.IsTrue(msrResult, "MSR not set, means assertion failed in task");
        }
Esempio n. 2
0
        public void Cache_Get_Set()
        {
            var cache = Container.Resolve <IEntityCache>();

            var msr = new ManualResetEvent(false);

            Task.Run(async() =>
            {
                var l1 = new List <CacheTest1>();
                var l2 = new List <CacheTest2>();

                for (var i = 0; i < 15; i++)
                {
                    var c1 = new CacheTest1
                    {
                        Field = "F" + i
                    };

                    l1.Add(c1);

                    await cache.SetEntity(c1.Field, c1);

                    var c2 = new CacheTest2
                    {
                        Field = "F" + i
                    };

                    l2.Add(c2);

                    await cache.SetEntity(c2.Field, c2);
                }

                await cache.SetEntity("List1", l1);
                await cache.SetEntity("List2", l2);

                var c1Out = await cache.GetEntity <List <CacheTest1> >("List1", TimeSpan.FromSeconds(5));
                var c2Out = await cache.GetEntity <List <CacheTest2> >("List2", TimeSpan.FromSeconds(5));

                Assert.IsNotNull(c1Out);
                Assert.IsNotNull(c2Out);

                Assert.AreEqual(c2Out.Count, 15);
                Assert.AreEqual(c1Out.Count, 15);

                await cache.Delete <List <CacheTest1> >("List1");

                var c1Out2 = await cache.GetEntity <List <CacheTest1> >("List1", TimeSpan.FromSeconds(5));
                var c2Out2 = await cache.GetEntity <List <CacheTest2> >("List2", TimeSpan.FromSeconds(5));

                var c1OutMissingBadName = await cache.GetEntity <List <CacheTest1> >("List3", TimeSpan.FromSeconds(5));

                Assert.IsNotNull(c2Out2);
                Assert.IsNull(c1Out2);
                Assert.IsNull(c1OutMissingBadName);

                var c1Out3 = await cache.GetEntity <List <CacheTest2> >("List1", TimeSpan.FromSeconds(5));
                var c2Out3 = await cache.GetEntity <List <CacheTest1> >("List2", TimeSpan.FromSeconds(5));

                Assert.IsNull(c2Out3);
                Assert.IsNull(c1Out3);

                var f1 = await cache.GetEntity <CacheTest1>("F1", TimeSpan.FromSeconds(5));
                var f2 = await cache.GetEntity <CacheTest2>("F1", TimeSpan.FromSeconds(5));

                Assert.IsNotNull(f1);
                Assert.IsNotNull(f2);


                await cache.Delete <CacheTest1>("F1");

                var f12 = await cache.GetEntity <CacheTest1>("F1", TimeSpan.FromSeconds(5));
                var f22 = await cache.GetEntity <CacheTest2>("F1", TimeSpan.FromSeconds(5));

                Assert.IsNull(f12);
                Assert.IsNotNull(f22);

                msr.Set();
            });

            var msrResult = msr.WaitOne(3000);

            Assert.IsTrue(msrResult, "MSR not set, means assertion failed in task");
        }