1   /***************************************************************************************
2    * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved.                 *
3    * http://aspectwerkz.codehaus.org                                                    *
4    * ---------------------------------------------------------------------------------- *
5    * The software in this package is published under the terms of the LGPL license      *
6    * a copy of which has been included with this distribution in the license.txt file.  *
7    **************************************************************************************/
8   package test.annotation;
9   
10  import junit.framework.TestCase;
11  
12  /***
13   * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a>
14   */
15  public class AnnotationTest extends TestCase {
16      private static String s_logString = "";
17  
18      /***
19       * @AnnotationPrivateField
20       */
21      private int privateField;
22  
23      /***
24       * @AnnotationProtectedField
25       */
26      protected int protectedField;
27  
28      /***
29       * @AnnotationPublicField
30       */
31      public int publicField;
32  
33      /***
34       * @AnnotationPackagePrivateField
35       */
36      intong> packagePrivateField;
37  
38      public AnnotationTest() {
39      }
40  
41      public AnnotationTest(String name) {
42          super(name);
43      }
44  
45      public void testPrivateMethod() {
46          s_logString = "";
47          privateMethod();
48          assertEquals("call execution invocation execution call ", s_logString);
49      }
50  
51      public void testProtectedMethod() {
52          s_logString = "";
53          protectedMethod();
54          assertEquals("call execution invocation execution call ", s_logString);
55      }
56  
57      public void testPackagePrivateMethod() {
58          s_logString = "";
59          packagePrivateMethod();
60          assertEquals("call execution invocation execution call ", s_logString);
61      }
62  
63      public void testPublicMethod() {
64          s_logString = "";
65          publicMethod();
66          assertEquals("call execution execution2 invocation execution2 execution call ", s_logString);
67      }
68  
69      public void testSetPublicField() {
70          s_logString = "";
71          publicField = 0;
72          assertEquals("set set ", s_logString);
73      }
74  
75      public void testSetPrivateField() {
76          s_logString = "";
77          privateField = 0;
78          assertEquals("set set ", s_logString);
79      }
80  
81      public void testSetProtectedField() {
82          s_logString = "";
83          protectedField = 0;
84          assertEquals("set set ", s_logString);
85      }
86  
87      public void testSetPackagePrivateField() {
88          s_logString = "";
89          packagePrivateField = 0;
90          assertEquals("set set ", s_logString);
91      }
92  
93      public void testGetPublicField() {
94          s_logString = "";
95          int i = publicField;
96          assertEquals("get get ", s_logString);
97      }
98  
99      public void testGetPrivateField() {
100         s_logString = "";
101         int i = privateField;
102         assertEquals("get get ", s_logString);
103     }
104 
105     public void testGetProtectedField() {
106         s_logString = "";
107         int i = protectedField;
108         assertEquals("get get ", s_logString);
109     }
110 
111     public void testGetPackagePrivateField() {
112         s_logString = "";
113         int</strong> i = packagePrivateField;
114         assertEquals("get get ", s_logString);
115     }
116 
117     public static void main(String[] args) {
118         junit.textui.TestRunner.run(suite());
119     }
120 
121     public static junit.framework.Test suite() {
122         return new junit.framework.TestSuite(AnnotationTest.class);
123     }
124 
125     // ==== methods to test ====
126     public static void log(final String wasHere) {
127         s_logString += wasHere;
128     }
129 
130     /***
131      * @AnnotationPrivateMethod
132      */
133     private void privateMethod() {
134         log("invocation ");
135     }
136 
137     /***
138      * @AnnotationProtectedMethod
139      */
140     protected void protectedMethod() {
141         log("invocation ");
142     }
143 
144     /***
145      * @AnnotationPublicMethod
146      * @AnnotationPublicMethod2
147      */
148     public void publicMethod() {
149         log("invocation ");
150     }
151 
152     /***
153      * @AnnotationPackagePrivateMethod
154      */
155     voidong> packagePrivateMethod() {
156         log("invocation ");
157     }
158 }