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); }
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); }
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); }
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); }
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); }
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); }