KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > hints > CreateElementTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.java.hints;
20
21 import java.util.Arrays JavaDoc;
22 import java.util.Collections JavaDoc;
23 import java.util.HashSet JavaDoc;
24 import java.util.List JavaDoc;
25 import java.util.Set JavaDoc;
26 import javax.swing.text.Document JavaDoc;
27 import org.netbeans.modules.java.hints.CreateElement.CreateFieldFix;
28 import org.netbeans.spi.editor.hints.Fix;
29 import org.openide.cookies.EditorCookie;
30 import org.openide.loaders.DataObject;
31
32 /**
33  *
34  * @author Jan Lahoda
35  */

36 public class CreateElementTest extends JavaHintsTestBase {
37     
38     /** Creates a new instance of CreateElementTest */
39     public CreateElementTest(String JavaDoc name) {
40         super(name);
41     }
42     
43     public void testBinaryOperator() throws Exception JavaDoc {
44         Set JavaDoc<String JavaDoc> golden = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
45             "CreateFieldFix:p:org.netbeans.test.java.hints.BinaryOperator:int:[private, static]",
46             "AddParameterOrLocalFix:p:int:true",
47             "AddParameterOrLocalFix:p:int:false"
48         ));
49         
50         performTestAnalysisTest("org.netbeans.test.java.hints.BinaryOperator", 218, golden);
51         performTestAnalysisTest("org.netbeans.test.java.hints.BinaryOperator", 255, golden);
52         performTestAnalysisTest("org.netbeans.test.java.hints.BinaryOperator", 294, golden);
53         performTestAnalysisTest("org.netbeans.test.java.hints.BinaryOperator", 333, golden);
54     }
55     
56     public void testEnhancedForLoop() throws Exception JavaDoc {
57         performTestAnalysisTest("org.netbeans.test.java.hints.EnhancedForLoop", 186, new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
58             "CreateFieldFix:u:org.netbeans.test.java.hints.EnhancedForLoop:java.lang.Iterable<java.lang.String>:[private, static]",
59             "AddParameterOrLocalFix:u:java.lang.Iterable<java.lang.String>:true",
60             "AddParameterOrLocalFix:u:java.lang.Iterable<java.lang.String>:false"
61         )));
62         
63 // performTestAnalysisTest("org.netbeans.test.java.hints.EnhancedForLoop", 244, new HashSet<String>(Arrays.asList(
64
// "CreateFieldFix:u:org.netbeans.test.java.hints.EnhancedForLoop:java.lang.Iterable<java.util.List<? extends java.lang.String>>:[private, static]",
65
// "AddParameterOrLocalFix:u:java.lang.Iterable<java.util.List<? extends java.lang.String>>:true",
66
// "AddParameterOrLocalFix:u:java.lang.Iterable<java.util.List<? extends java.lang.String>>:false"
67
// )));
68
}
69     
70     public void testArrayAccess() throws Exception JavaDoc {
71         Set JavaDoc<String JavaDoc> simpleGoldenWithLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
72                 "CreateFieldFix:x:org.netbeans.test.java.hints.ArrayAccess:int[]:[private, static]",
73                 "AddParameterOrLocalFix:x:int[]:true",
74                 "AddParameterOrLocalFix:x:int[]:false"
75                 ));
76         
77         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 170, simpleGoldenWithLocal);
78         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 188, simpleGoldenWithLocal);
79         
80         Set JavaDoc<String JavaDoc> simpleGoldenWithoutLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
81                 "CreateFieldFix:x:org.netbeans.test.java.hints.ArrayAccess:int[]:[private]"
82                 ));
83         
84         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 262, simpleGoldenWithoutLocal);
85         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 283, simpleGoldenWithoutLocal);
86         
87         Set JavaDoc<String JavaDoc> indexGoldenWithLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
88                 "CreateFieldFix:u:org.netbeans.test.java.hints.ArrayAccess:int:[private, static]",
89                 "AddParameterOrLocalFix:u:int:true",
90                 "AddParameterOrLocalFix:u:int:false"
91                 ));
92         
93         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 335, indexGoldenWithLocal);
94         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 377, indexGoldenWithLocal);
95         
96         Set JavaDoc<String JavaDoc> indexGoldenWithoutLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
97                 "CreateFieldFix:u:org.netbeans.test.java.hints.ArrayAccess:int:[private]"
98                 ));
99         
100         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 359, indexGoldenWithoutLocal);
101         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 401, indexGoldenWithoutLocal);
102         
103         performTestAnalysisTest("org.netbeans.test.java.hints.ArrayAccess", 442, new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
104                 "CreateFieldFix:s:org.netbeans.test.java.hints.ArrayAccess:java.lang.Object[][]:[private]"
105         )));
106     }
107     
108     public void testAssignment() throws Exception JavaDoc {
109         Set JavaDoc<String JavaDoc> golden = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
110                 "CreateFieldFix:x:org.netbeans.test.java.hints.Assignment:int:[private, static]",
111                 "AddParameterOrLocalFix:x:int:true",
112                 "AddParameterOrLocalFix:x:int:false"
113                 ));
114         performTestAnalysisTest("org.netbeans.test.java.hints.Assignment", 174, golden);
115         performTestAnalysisTest("org.netbeans.test.java.hints.Assignment", 186, golden);
116     }
117     
118     public void testVariableDeclaration() throws Exception JavaDoc {
119         Set JavaDoc<String JavaDoc> golden = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
120                 "CreateFieldFix:x:org.netbeans.test.java.hints.VariableDeclaration:int:[private, static]",
121                 "AddParameterOrLocalFix:x:int:true",
122                 "AddParameterOrLocalFix:x:int:false"
123                 ));
124         
125         performTestAnalysisTest("org.netbeans.test.java.hints.VariableDeclaration", 186, golden);
126     }
127     
128     public void testAssert() throws Exception JavaDoc {
129         Set JavaDoc<String JavaDoc> goldenC = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
130                 "CreateFieldFix:c:org.netbeans.test.java.hints.Assert:boolean:[private, static]",
131                 "AddParameterOrLocalFix:c:boolean:true",
132                 "AddParameterOrLocalFix:c:boolean:false"
133                 ));
134         
135         performTestAnalysisTest("org.netbeans.test.java.hints.Assert", 159, goldenC);
136         
137         Set JavaDoc<String JavaDoc> goldenS = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
138                 "CreateFieldFix:s:org.netbeans.test.java.hints.Assert:java.lang.Object:[private, static]",
139                 "AddParameterOrLocalFix:s:java.lang.Object:true",
140                 "AddParameterOrLocalFix:s:java.lang.Object:false"
141                 ));
142         
143         performTestAnalysisTest("org.netbeans.test.java.hints.Assert", 163, goldenS);
144     }
145     
146     public void testParenthesis() throws Exception JavaDoc {
147         Set JavaDoc<String JavaDoc> goldenC = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
148                 "CreateFieldFix:x:org.netbeans.test.java.hints.Parenthesis:int[][]:[private]"
149         ));
150         
151         performTestAnalysisTest("org.netbeans.test.java.hints.Parenthesis", 203, goldenC);
152     }
153     
154     public void testIfAndLoops() throws Exception JavaDoc {
155         Set JavaDoc<String JavaDoc> simple = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
156                 "CreateFieldFix:a:org.netbeans.test.java.hints.IfAndLoops:boolean:[private, static]",
157                 "AddParameterOrLocalFix:a:boolean:true",
158                 "AddParameterOrLocalFix:a:boolean:false"
159         ));
160         
161         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 194, simple);
162         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 247, simple);
163         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 309, simple);
164         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 368, simple);
165         
166         Set JavaDoc<String JavaDoc> complex = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
167                 "CreateFieldFix:a:org.netbeans.test.java.hints.IfAndLoops:boolean[]:[private]"
168         ));
169         
170         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 214, complex);
171         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 270, complex);
172         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 336, complex);
173         performTestAnalysisTest("org.netbeans.test.java.hints.IfAndLoops", 395, complex);
174     }
175     
176     public void testTarget() throws Exception JavaDoc {
177         Set JavaDoc<String JavaDoc> simple = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
178                 "CreateFieldFix:a:org.netbeans.test.java.hints.Target:int:[private, static]",
179                 "AddParameterOrLocalFix:a:int:true",
180                 "AddParameterOrLocalFix:a:int:false"
181         ));
182         
183         performTestAnalysisTest("org.netbeans.test.java.hints.Target", 186, simple);
184         
185         Set JavaDoc<String JavaDoc> complex = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
186                 "CreateFieldFix:a:org.netbeans.test.java.hints.Target:int:[private]"
187         ));
188         
189         performTestAnalysisTest("org.netbeans.test.java.hints.Target", 203, complex);
190         performTestAnalysisTest("org.netbeans.test.java.hints.Target", 224, complex);
191         performTestAnalysisTest("org.netbeans.test.java.hints.Target", 252, complex);
192     }
193     
194     public void testMemberSelect() throws Exception JavaDoc {
195         Set JavaDoc<String JavaDoc> simpleWithStatic = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
196                 "CreateFieldFix:a:org.netbeans.test.java.hints.MemberSelect:int:[private, static]"
197         ));
198         Set JavaDoc<String JavaDoc> simple = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
199                 "CreateFieldFix:a:org.netbeans.test.java.hints.MemberSelect:int:[private]"
200         ));
201         
202         performTestAnalysisTest("org.netbeans.test.java.hints.MemberSelect", 236, simpleWithStatic);
203         performTestAnalysisTest("org.netbeans.test.java.hints.MemberSelect", 268, simpleWithStatic);
204         
205         performTestAnalysisTest("org.netbeans.test.java.hints.MemberSelect", 290, simple);
206         performTestAnalysisTest("org.netbeans.test.java.hints.MemberSelect", 311, simple);
207     }
208     
209     public void testSimple() throws Exception JavaDoc {
210         Set JavaDoc<String JavaDoc> simpleJLOWithLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
211                 "CreateFieldFix:e:org.netbeans.test.java.hints.Simple:java.lang.Object:[private, static]",
212                 "AddParameterOrLocalFix:e:java.lang.Object:true",
213                 "AddParameterOrLocalFix:e:java.lang.Object:false"
214         ));
215         Set JavaDoc<String JavaDoc> simpleJLO = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
216                 "CreateFieldFix:e:org.netbeans.test.java.hints.Simple:java.lang.Object:[private]"
217         ));
218         Set JavaDoc<String JavaDoc> simpleJLEWithLocal = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
219                 "CreateFieldFix:e:org.netbeans.test.java.hints.Simple:java.lang.Exception:[private, static]",
220                 "AddParameterOrLocalFix:e:java.lang.Exception:true",
221                 "AddParameterOrLocalFix:e:java.lang.Exception:false"
222         ));
223         Set JavaDoc<String JavaDoc> simpleJLE = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
224                 "CreateFieldFix:e:org.netbeans.test.java.hints.Simple:java.lang.Exception:[private]"
225         ));
226         
227         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 192, simpleJLEWithLocal);
228         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 211, simpleJLE);
229         
230         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 245, simpleJLOWithLocal);
231         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 275, simpleJLO);
232         
233         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 302, simpleJLOWithLocal);
234         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 342, simpleJLO);
235     }
236     
237     public void testUnary() throws Exception JavaDoc {
238         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 382, Collections.singleton("CreateFieldFix:i:org.netbeans.test.java.hints.Simple:int:[private]"));
239         
240         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 398, Collections.singleton("CreateFieldFix:b:org.netbeans.test.java.hints.Simple:byte:[private]"));
241         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 409, Collections.singleton("CreateFieldFix:b:org.netbeans.test.java.hints.Simple:byte:[private]"));
242         
243         performTestAnalysisTest("org.netbeans.test.java.hints.Simple", 415, Collections.singleton("CreateFieldFix:l:org.netbeans.test.java.hints.Simple:int:[private]"));
244     }
245     
246     public void testTypevarsAndEnums() throws Exception JavaDoc {
247         performTestAnalysisTest("org.netbeans.test.java.hints.TypevarsAndErrors", 221, Collections.<String JavaDoc>emptySet());
248         performTestAnalysisTest("org.netbeans.test.java.hints.TypevarsAndErrors", 243, Collections.<String JavaDoc>emptySet());
249         performTestAnalysisTest("org.netbeans.test.java.hints.TypevarsAndErrors", 265, Collections.<String JavaDoc>emptySet());
250         performTestAnalysisTest("org.netbeans.test.java.hints.TypevarsAndErrors", 287, Collections.<String JavaDoc>emptySet());
251     }
252     
253     public void testReturn() throws Exception JavaDoc {
254         performTestAnalysisTest("org.netbeans.test.java.hints.Return", 164, new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
255                 "AddParameterOrLocalFix:l:int:false",
256                 "AddParameterOrLocalFix:l:int:true",
257                 "CreateFieldFix:l:org.netbeans.test.java.hints.Return:int:[private]"
258         )));
259         performTestAnalysisTest("org.netbeans.test.java.hints.Return", 220, new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
260                 "AddParameterOrLocalFix:l:java.util.List:false",
261                 "AddParameterOrLocalFix:l:java.util.List:true",
262                 "CreateFieldFix:l:org.netbeans.test.java.hints.Return:java.util.List:[private]"
263         )));
264         performTestAnalysisTest("org.netbeans.test.java.hints.Return", 284, new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
265                 "AddParameterOrLocalFix:l:java.util.List<java.lang.String>:false",
266                 "AddParameterOrLocalFix:l:java.util.List<java.lang.String>:true",
267                 "CreateFieldFix:l:org.netbeans.test.java.hints.Return:java.util.List<java.lang.String>:[private]"
268         )));
269         performTestAnalysisTest("org.netbeans.test.java.hints.Return", 340, Collections.<String JavaDoc>emptySet());
270     }
271     
272     public void test92419() throws Exception JavaDoc {
273         performTestAnalysisTest("org.netbeans.test.java.hints.Bug92419", 123, Collections.<String JavaDoc>emptySet());
274     }
275     
276     protected void performTestAnalysisTest(String JavaDoc className, int offset, Set JavaDoc<String JavaDoc> golden) throws Exception JavaDoc {
277         prepareTest(className);
278         
279         DataObject od = DataObject.find(info.getFileObject());
280         EditorCookie ec = (EditorCookie) od.getLookup().lookup(EditorCookie.class);
281         
282         Document JavaDoc doc = ec.openDocument();
283         
284         CreateElement ce = new CreateElement();
285         List JavaDoc<Fix> fixes = ce.analyze(info, offset);
286         Set JavaDoc<String JavaDoc> real = new HashSet JavaDoc<String JavaDoc>();
287         
288         for (Fix f : fixes) {
289             if (f instanceof CreateFieldFix) {
290                 real.add(((CreateFieldFix) f).toDebugString(info));
291                 continue;
292             }
293             if (f instanceof AddParameterOrLocalFix) {
294                 real.add(((AddParameterOrLocalFix) f).toDebugString(info));
295                 continue;
296             }
297             
298             fail("Fix of incorrect type: " + f.getClass());
299         }
300         
301         assertEquals(golden, real);
302     }
303     
304     @Override JavaDoc
305     protected String JavaDoc testDataExtension() {
306         return "org/netbeans/test/java/hints/CreateElementTest/";
307     }
308     
309     @Override JavaDoc
310     protected boolean createCaches() {
311         return false;
312     }
313     
314 }
315
Popular Tags