You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TheAspect.java 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import org.aspectj.testing.Tester;
  2. privileged aspect TheAspect perthis(this(TheObject)) {
  3. private TheObject theObject;
  4. private int myPrivate_int=-1, myPackage_int=-1, myProtected_int=-1, myPublic_int=-1;
  5. after() returning(TheObject obj): execution(new()) {
  6. theObject = obj;
  7. }
  8. after() returning(): call(* realMain(..)) {
  9. test_eq();
  10. test_timeseq();
  11. test_diveq();
  12. test_modeq();
  13. test_pluseq();
  14. test_minuseq();
  15. test_leftShifteq();
  16. test_rightShifteq();
  17. test_xoreq();
  18. test_andeq();
  19. test_unsignedRightShifteq();
  20. test_postinc();
  21. test_postdec();
  22. test_preinc();
  23. test_predec();
  24. test_oreq();
  25. test_gets();
  26. test_calls();
  27. }
  28. public void test_eq() {
  29. theObject.private_int = 1;
  30. theObject.protected_int = 2;
  31. theObject.package_int = 3;
  32. theObject.public_int = 4;
  33. Tester.checkEqual(theObject.private_int,1,"set private_int");
  34. Tester.checkEqual(theObject.protected_int,2,"set protected_int");
  35. Tester.checkEqual(theObject.package_int,3,"set package_int");
  36. Tester.checkEqual(theObject.public_int,4,"set public_int");
  37. }
  38. public void test_timeseq() {
  39. theObject.private_int *= 4;
  40. theObject.protected_int *= 4;
  41. theObject.package_int *= 4;
  42. theObject.public_int *= 4;
  43. Tester.checkEqual(theObject.private_int,4,"times private_int");
  44. Tester.checkEqual(theObject.protected_int,8,"times protected_int");
  45. Tester.checkEqual(theObject.package_int,12,"times package_int");
  46. Tester.checkEqual(theObject.public_int,16,"times public_int");
  47. }
  48. public void test_diveq() {
  49. theObject.private_int /= 2;
  50. theObject.protected_int /= 2;
  51. theObject.package_int /= 2;
  52. theObject.public_int /= 2;
  53. Tester.checkEqual(theObject.private_int,2,"div private_int");
  54. Tester.checkEqual(theObject.protected_int,4,"div protected_int");
  55. Tester.checkEqual(theObject.package_int,6,"div package_int");
  56. Tester.checkEqual(theObject.public_int,8,"div public_int");
  57. }
  58. public void test_modeq() {
  59. theObject.private_int %= 2;
  60. theObject.protected_int %= 3;
  61. theObject.package_int %= 4;
  62. theObject.public_int %= 5;
  63. Tester.checkEqual(theObject.private_int,0,"mod private_int");
  64. Tester.checkEqual(theObject.protected_int,1,"mod protected_int");
  65. Tester.checkEqual(theObject.package_int,2,"mod package_int");
  66. Tester.checkEqual(theObject.public_int,3,"mod public_int");
  67. }
  68. public void test_pluseq() {
  69. theObject.private_int += 2;
  70. theObject.protected_int += 2;
  71. theObject.package_int += 2;
  72. theObject.public_int += 2;
  73. Tester.checkEqual(theObject.private_int,2,"plus private_int");
  74. Tester.checkEqual(theObject.protected_int,3,"plus protected_int");
  75. Tester.checkEqual(theObject.package_int,4,"plus package_int");
  76. Tester.checkEqual(theObject.public_int,5,"plus public_int");
  77. }
  78. public void test_minuseq() {
  79. theObject.private_int -= 1;
  80. theObject.protected_int -= 1;
  81. theObject.package_int -= 1;
  82. theObject.public_int -= 1;
  83. Tester.checkEqual(theObject.private_int,1,"minus private_int");
  84. Tester.checkEqual(theObject.protected_int,2,"minus protected_int");
  85. Tester.checkEqual(theObject.package_int,3,"minus package_int");
  86. Tester.checkEqual(theObject.public_int,4,"minus public_int");
  87. }
  88. public void test_leftShifteq() {
  89. theObject.private_int <<= 1;
  90. theObject.protected_int <<= 1;
  91. theObject.package_int <<= 1;
  92. theObject.public_int <<= 1;
  93. Tester.checkEqual(theObject.private_int,2,"left shift private_int");
  94. Tester.checkEqual(theObject.protected_int,4,"left shift protected_int");
  95. Tester.checkEqual(theObject.package_int,6,"left shift package_int");
  96. Tester.checkEqual(theObject.public_int,8,"left shift public_int");
  97. }
  98. public void test_rightShifteq() {
  99. theObject.private_int >>= 1;
  100. theObject.protected_int >>= 1;
  101. theObject.package_int >>= 1;
  102. theObject.public_int >>= 1;
  103. Tester.checkEqual(theObject.private_int,1,"right shift private_int");
  104. Tester.checkEqual(theObject.protected_int,2,"right shift protected_int");
  105. Tester.checkEqual(theObject.package_int,3,"right shift package_int");
  106. Tester.checkEqual(theObject.public_int,4,"right shift public_int");
  107. }
  108. public void test_xoreq() {
  109. theObject.private_int ^= 0;
  110. theObject.protected_int ^= 1;
  111. theObject.package_int ^= 1;
  112. theObject.public_int ^= 1;
  113. Tester.checkEqual(theObject.private_int,1,"xor private_int");
  114. Tester.checkEqual(theObject.protected_int,3,"xor protected_int");
  115. Tester.checkEqual(theObject.package_int,2,"xor package_int");
  116. Tester.checkEqual(theObject.public_int,5,"xor public_int");
  117. }
  118. public void test_andeq() {
  119. theObject.private_int &= 3;
  120. theObject.protected_int &= 6;
  121. theObject.package_int &= 3;
  122. theObject.public_int &= 4;
  123. Tester.checkEqual(theObject.private_int,1,"and private_int");
  124. Tester.checkEqual(theObject.protected_int,2,"and protected_int");
  125. Tester.checkEqual(theObject.package_int,2,"and package_int");
  126. Tester.checkEqual(theObject.public_int,4,"and public_int");
  127. }
  128. public void test_unsignedRightShifteq() {
  129. theObject.private_int >>>= 0;
  130. theObject.protected_int >>>= 1;
  131. theObject.package_int >>>= 1;
  132. theObject.public_int >>>= 2;
  133. Tester.checkEqual(theObject.private_int,1,"unsigned right shift private_int");
  134. Tester.checkEqual(theObject.protected_int,1,"unsigned right shift protected_int");
  135. Tester.checkEqual(theObject.package_int,1,"unsigned right shift package_int");
  136. Tester.checkEqual(theObject.public_int,1,"unsigned right shift public_int");
  137. }
  138. public void test_postinc() {
  139. theObject.private_int ++;
  140. theObject.protected_int ++;
  141. theObject.package_int ++;
  142. theObject.public_int ++;
  143. Tester.checkEqual(theObject.private_int,2,"post ++ private_int");
  144. Tester.checkEqual(theObject.protected_int,2,"post ++ protected_int");
  145. Tester.checkEqual(theObject.package_int,2,"post ++ package_int");
  146. Tester.checkEqual(theObject.public_int,2,"post ++ public_int");
  147. }
  148. public void test_postdec() {
  149. theObject.private_int --;
  150. theObject.protected_int --;
  151. theObject.package_int --;
  152. theObject.public_int --;
  153. Tester.checkEqual(theObject.private_int,1,"post -- private_int");
  154. Tester.checkEqual(theObject.protected_int,1,"post -- protected_int");
  155. Tester.checkEqual(theObject.package_int,1,"post -- package_int");
  156. Tester.checkEqual(theObject.public_int,1,"post -- public_int");
  157. }
  158. public void test_preinc() {
  159. ++ theObject.private_int;
  160. ++ theObject.protected_int;
  161. ++ theObject.package_int;
  162. ++ theObject.public_int;
  163. Tester.checkEqual(theObject.private_int,2,"pre ++ private_int");
  164. Tester.checkEqual(theObject.protected_int,2,"pre ++ protected_int");
  165. Tester.checkEqual(theObject.package_int,2,"pre ++ package_int");
  166. Tester.checkEqual(theObject.public_int,2,"pre ++ public_int");
  167. }
  168. public void test_predec() {
  169. -- theObject.private_int;
  170. -- theObject.protected_int;
  171. -- theObject.package_int;
  172. -- theObject.public_int;
  173. Tester.checkEqual(theObject.private_int,1,"pre -- private_int");
  174. Tester.checkEqual(theObject.protected_int,1,"pre -- protected_int");
  175. Tester.checkEqual(theObject.package_int,1,"pre -- package_int");
  176. Tester.checkEqual(theObject.public_int,1,"pre -- public_int");
  177. }
  178. public void test_oreq() {
  179. theObject.private_int |= 8;
  180. theObject.protected_int |= 8;
  181. theObject.package_int |= 8;
  182. theObject.public_int |= 8;
  183. Tester.checkEqual(theObject.private_int,9,"or private_int");
  184. Tester.checkEqual(theObject.protected_int,9,"or protected_int");
  185. Tester.checkEqual(theObject.package_int,9,"or package_int");
  186. Tester.checkEqual(theObject.public_int,9,"or public_int");
  187. }
  188. public void test_gets() {
  189. myPrivate_int = theObject.private_int;
  190. myProtected_int = theObject.protected_int;
  191. myPackage_int = theObject.package_int;
  192. myPublic_int = theObject.public_int;
  193. }
  194. public void test_calls() {
  195. theObject.private_call();
  196. theObject.protected_call();
  197. theObject.package_call();
  198. theObject.public_call();
  199. }
  200. }