annotate UnitTests/CS/Aspects/ClearCacheAspect.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.Aspects;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.TypeBuilder;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace Aspects
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public class ClearCacheAspect
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public abstract class TestClass
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 int _value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 [Cache]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public virtual int Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 return _value++;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 [ClearCache("Test1")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public abstract void ClearTest1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 [Cache]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public virtual int Test2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 return _value++;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 [Cache]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 public virtual int Test2(int i)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 return _value++;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 [ClearCache("Test2")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public abstract void ClearTest2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 [ClearCache("Test2", typeof(int))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 public abstract void ClearTest2a();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [ClearCache("Test2"), ClearCache("Test2", typeof(int))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public abstract void ClearTest2b();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public abstract class TestClass1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 [ClearCache(typeof(TestClass), "Test2")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public abstract void ClearTest();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 [ClearCache(typeof(TestClass), "Test2", typeof(int))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public abstract void ClearTest1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 protected abstract int Test();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 [ClearCache("Test")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public abstract void ClearTest3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 [ClearCache(typeof(TestClass))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public abstract void ClearTest4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 [ClearCache]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public abstract void ClearTest5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public void Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 TestClass tc = TypeFactory.CreateInstance<TestClass>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 int value1 = tc.Test1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 int value2 = tc.Test1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 tc.ClearTest1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 Assert.AreNotEqual(value1, tc.Test1());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public void Test2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 TestClass tc = TypeFactory.CreateInstance<TestClass>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 tc.ClearTest2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 int value1 = tc.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 int value2 = tc.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 tc.ClearTest2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 Assert.AreNotEqual(value1, tc.Test2());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 public void Test2a()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 TestClass tc = TypeFactory.CreateInstance<TestClass>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 tc.ClearTest2a();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 int value1 = tc.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 int value2 = tc.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 tc.ClearTest2a();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 Assert.AreNotEqual(value1, tc.Test2(1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 public void Test2b()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 TestClass tc = TypeFactory.CreateInstance<TestClass>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 tc.ClearTest2b();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 int value1 = tc.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 int value2 = tc.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 int value3 = tc.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 int value4 = tc.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 Assert.AreEqual(value3, value4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 tc.ClearTest2b();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 Assert.AreNotEqual(value1, tc.Test2());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 Assert.AreNotEqual(value3, tc.Test2(1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 public void Test3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 TestClass tc1 = TypeAccessor<TestClass>. CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 TestClass1 tc2 = TypeAccessor<TestClass1>.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 tc1.ClearTest2b();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 int value1 = tc1.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 int value2 = tc1.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 int value3 = tc1.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 int value4 = tc1.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 Assert.AreEqual(value3, value4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 tc2.ClearTest();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 tc2.ClearTest1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 Assert.AreNotEqual(value1, tc1.Test2());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 Assert.AreNotEqual(value3, tc1.Test2(1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 public void Test4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 TestClass1 tc = TypeAccessor<TestClass1>.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 tc.ClearTest3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 public void Test5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 TestClass tc1 = TypeAccessor<TestClass>. CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 TestClass1 tc2 = TypeAccessor<TestClass1>.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 tc1.ClearTest2b();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 int value1 = tc1.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 int value2 = tc1.Test2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 int value3 = tc1.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 int value4 = tc1.Test2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 Assert.AreEqual(value1, value2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 Assert.AreEqual(value3, value4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 tc2.ClearTest();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 tc2.ClearTest4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 Assert.AreNotEqual(value1, tc1.Test2());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 Assert.AreNotEqual(value3, tc1.Test2(1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 public void Test6()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 TestClass1 tc = TypeAccessor<TestClass1>.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 tc.ClearTest5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 }