示例#1
0
        public async Task Cache_Aspect_Caches_AsyncTaskMethod_Result()
        {
            var target   = new TestCalss();
            var expected = await target.CalculateTaskAsync(50, "test");

            await Task.Delay(10);

            var result = await target.CalculateTaskAsync(50, "test");

            await Task.Delay(10);

            var result2 = await target.CalculateTaskAsync(501, "test1");

            await Task.Delay(10);

            var result3 = await target.CalculateTaskAsync(50, "test");

            await Task.Delay(3000);

            var result4 = await target.CalculateTaskAsync(50, "test");

            Assert.Equal(expected, result);
            Assert.Equal(expected, result3);
            Assert.NotEqual(result2, result);
            Assert.NotEqual(result4, result);
        }
示例#2
0
        public async Task Cache_Aspect_Distinct_Instances()
        {
            var target  = new TestCalss();
            var target2 = new TestCalss();
            var result1 = target.Calculate(20, "test");
            await Task.Delay(10);

            var result2 = target2.Calculate(20, "test");

            Assert.NotEqual(result1, result2);
        }
示例#3
0
        public void Cache_Void_Method()
        {
            var target = new TestCalss();
            var a      = 1;

            target.Do(ref a);
            Assert.Equal(2, a);

            a = 1;
            target.Do(ref a);
            Assert.Equal(1, a);
        }
示例#4
0
        public async Task Cache_TaskVoid_Method()
        {
            var target = new TestCalss();
            var a      = 1;
            await target.DoTask(ref a);

            Assert.Equal(2, a);

            a = 1;
            await target.DoTask(ref a);

            Assert.Equal(1, a);
        }
示例#5
0
        public async Task Cache_Aspect_Caches_Method_Result()
        {
            var target   = new TestCalss();
            var expected = target.Calculate(10, "test");
            await Task.Delay(10);

            var result = target.Calculate(10, "test");
            await Task.Delay(10);

            var result2 = target.Calculate(101, "test1");

            Assert.Equal(expected, result);
            Assert.NotEqual(result2, result);
        }
示例#6
0
        public async Task Cache_Aspect_Caches_Static_Method_Result()
        {
            var expected = TestCalss.CalculateStatic(30, "test");
            await Task.Delay(10);

            var result = TestCalss.CalculateStatic(30, "test");
            await Task.Delay(10);

            var result2 = TestCalss.CalculateStatic(301, "test1");
            await Task.Delay(10);

            var result3 = TestCalss.CalculateStatic(30, "test");
            await Task.Delay(3000);

            var result4 = TestCalss.CalculateStatic(30, "test");

            Assert.Equal(expected, result);
            Assert.Equal(expected, result3);
            Assert.NotEqual(result2, result);
            Assert.NotEqual(result4, result);
        }