001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.test.uml.dependencydiagram;
043:
044: import org.netbeans.jemmy.EventTool;
045: import org.netbeans.jemmy.JemmyProperties;
046: import org.netbeans.jemmy.TimeoutExpiredException;
047: import org.netbeans.junit.NbTestSuite;
048: import org.netbeans.test.uml.dependencydiagram.utils.DependencyDiagramVerifier;
049: import org.netbeans.test.uml.dependencydiagram.utils.DependencyUtils;
050: import org.netbeans.test.umllib.DiagramOperator;
051: import org.netbeans.test.umllib.ElementTypes;
052: import org.netbeans.test.umllib.LinkTypes;
053: import org.netbeans.test.umllib.NewDiagramWizardOperator;
054: import org.netbeans.test.umllib.testcases.UMLTestCase;
055:
056: public class ComponentDiagramBasicLinksTests extends UMLTestCase {
057: private final String projectName = "Depend_uml_cmpB";
058: private final String diagramNamePrefix = "test_diagram";
059: public static int COUNT = 0;
060: //public static boolean initialized = false;
061:
062: private static final String workDir = System
063: .getProperty("xtest.workdir");
064: private DiagramOperator diagram = null;
065: private DependencyDiagramVerifier verifier = null;
066:
067: private EventTool eventTool = new EventTool();
068:
069: public ComponentDiagramBasicLinksTests(String name) {
070: super (name);
071: }
072:
073: public static NbTestSuite suite() {
074: NbTestSuite suite = new NbTestSuite(
075: ComponentDiagramBasicLinksTests.class);
076: return suite;
077: }
078:
079: public void testPackage() {
080:
081: verifier.testDependencyGenerationAbsence(ElementTypes.PACKAGE);
082:
083: }
084:
085: // GEneralization link tests
086:
087: public void testSrcComponentComponentGeneralization() {
088:
089: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
090: ElementTypes.COMPONENT, LinkTypes.GENERALIZATION);
091:
092: }
093:
094: public void testSrcClassClassGeneralization() {
095:
096: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
097: ElementTypes.CLASS, LinkTypes.GENERALIZATION);
098:
099: }
100:
101: public void testSrcInterfaceInterfaceGeneralization() {
102:
103: verifier.testSrcOf2LinkedElements(ElementTypes.INTERFACE,
104: ElementTypes.INTERFACE, LinkTypes.GENERALIZATION);
105:
106: }
107:
108: public void testSrcArtifactArtifactGeneralization() {
109:
110: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
111: ElementTypes.ARTIFACT, LinkTypes.GENERALIZATION);
112:
113: }
114:
115: public void testSrcComponentClassGeneralization() {
116:
117: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
118: ElementTypes.CLASS, LinkTypes.GENERALIZATION);
119:
120: }
121:
122: public void testSrcComponentInterfaceGeneralization() {
123: try {
124: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
125: ElementTypes.INTERFACE, LinkTypes.GENERALIZATION);
126: } catch (TimeoutExpiredException e) {
127: // It is expected to have no link created between component and interface
128: assertTrue(
129: "There should not be generalization link between component and interface",
130: e
131: .getMessage()
132: .startsWith(
133: "Wait with link chooser: Chooser for link of type Generalization"));
134: }
135: }
136:
137: public void testSrcComponentArtifactGeneralization() {
138:
139: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
140: ElementTypes.ARTIFACT, LinkTypes.GENERALIZATION);
141:
142: }
143:
144: public void testSrcArtifactInterfaceGeneralization() {
145: try {
146: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
147: ElementTypes.INTERFACE, LinkTypes.GENERALIZATION);
148: } catch (TimeoutExpiredException e) {
149: // It is expected to have no link created between component and interface
150: assertTrue(
151: "There should not be generalization link between artifact and interface",
152: e
153: .getMessage()
154: .startsWith(
155: "Wait with link chooser: Chooser for link of type Generalization"));
156: }
157: }
158:
159: public void testSrcClassArtifactGeneralization() {
160:
161: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
162: ElementTypes.ARTIFACT, LinkTypes.GENERALIZATION);
163:
164: }
165:
166: // Implementation link tests
167:
168: public void testSrcClassInterfaceImplementation() {
169:
170: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
171: ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION);
172:
173: }
174:
175: public void testSrcComponentInterfaceImplementation() {
176:
177: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
178: ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION);
179:
180: }
181:
182: // Nested link tests
183:
184: public void testSrcClassClassNested() {
185:
186: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
187: ElementTypes.CLASS, LinkTypes.NESTED_LINK);
188:
189: }
190:
191: public void testSrcComponentComponentNested() {
192:
193: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
194: ElementTypes.COMPONENT, LinkTypes.NESTED_LINK);
195:
196: }
197:
198: public void testSrcInterfaceInterfaceNested() {
199:
200: verifier.testSrcOf2LinkedElements(ElementTypes.INTERFACE,
201: ElementTypes.INTERFACE, LinkTypes.NESTED_LINK);
202:
203: }
204:
205: public void testSrcArtifactArtifactNested() {
206:
207: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
208: ElementTypes.ARTIFACT, LinkTypes.NESTED_LINK);
209:
210: }
211:
212: public void testSrcClassPackageNested() {
213:
214: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
215: ElementTypes.PACKAGE, LinkTypes.NESTED_LINK);
216:
217: }
218:
219: public void testSrcComponentPackageNested() {
220:
221: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
222: ElementTypes.PACKAGE, LinkTypes.NESTED_LINK);
223:
224: }
225:
226: public void testSrcComponentClassNested() {
227:
228: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
229: ElementTypes.CLASS, LinkTypes.NESTED_LINK);
230:
231: }
232:
233: public void testSrcInterfacePackageNested() {
234:
235: verifier.testSrcOf2LinkedElements(ElementTypes.INTERFACE,
236: ElementTypes.PACKAGE, LinkTypes.NESTED_LINK);
237:
238: }
239:
240: public void testSrcArtifactPackageNested() {
241:
242: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
243: ElementTypes.PACKAGE, LinkTypes.NESTED_LINK);
244:
245: }
246:
247: // Delegate link tests
248:
249: public void testSrcClassClassDelegate() {
250:
251: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
252: ElementTypes.CLASS, LinkTypes.DELEGATE);
253:
254: }
255:
256: public void testSrcComponentComponentDelegate() {
257:
258: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
259: ElementTypes.COMPONENT, LinkTypes.DELEGATE);
260:
261: }
262:
263: public void testSrcInterfaceInterfaceDelegate() {
264:
265: verifier.testSrcOf2LinkedElements(ElementTypes.INTERFACE,
266: ElementTypes.INTERFACE, LinkTypes.DELEGATE);
267:
268: }
269:
270: public void testSrcArtifactArtifactDelegate() {
271:
272: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
273: ElementTypes.ARTIFACT, LinkTypes.DELEGATE);
274:
275: }
276:
277: public void testSrcClassPackageDelegate() {
278:
279: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
280: ElementTypes.PACKAGE, LinkTypes.DELEGATE);
281:
282: }
283:
284: public void testSrcComponentPackageDelegate() {
285:
286: verifier.testSrcOf2LinkedElements(ElementTypes.COMPONENT,
287: ElementTypes.PACKAGE, LinkTypes.DELEGATE);
288:
289: }
290:
291: public void testSrcInterfacePackageDelegate() {
292:
293: verifier.testSrcOf2LinkedElements(ElementTypes.INTERFACE,
294: ElementTypes.PACKAGE, LinkTypes.DELEGATE);
295:
296: }
297:
298: public void testSrcArtifactPackageDelegate() {
299:
300: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
301: ElementTypes.PACKAGE, LinkTypes.DELEGATE);
302:
303: }
304:
305: // several elements with links
306: public void testMultipleLinks1() {
307:
308: verifier.testSrcOf4LinkedElements(ElementTypes.CLASS,
309: ElementTypes.CLASS, LinkTypes.GENERALIZATION,
310: ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION,
311: ElementTypes.CLASS, LinkTypes.NESTED_LINK);
312:
313: }
314:
315: public void testMultipleLinks2() {
316:
317: verifier.testSrcOf4LinkedElements(ElementTypes.COMPONENT,
318: ElementTypes.CLASS, LinkTypes.GENERALIZATION,
319: ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION,
320: ElementTypes.CLASS, LinkTypes.NESTED_LINK);
321:
322: }
323:
324: public void testMultipleLinks3() {
325:
326: verifier.testSrcOf4LinkedElements(ElementTypes.COMPONENT,
327: ElementTypes.CLASS, LinkTypes.NESTED_LINK,
328: ElementTypes.INTERFACE, LinkTypes.DELEGATE,
329: ElementTypes.COMPONENT, LinkTypes.DELEGATE);
330:
331: }
332:
333: public void testMultipleLinks4() {
334:
335: verifier.testSrcOf4LinkedElements(ElementTypes.ARTIFACT,
336: ElementTypes.CLASS, LinkTypes.GENERALIZATION,
337: ElementTypes.INTERFACE, LinkTypes.GENERALIZATION,
338: //ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION,
339: ElementTypes.PACKAGE, LinkTypes.NESTED_LINK);
340:
341: }
342:
343: public void testMultipleLinks5() {
344:
345: verifier.testSrcOf4LinkedElements(ElementTypes.CLASS,
346: ElementTypes.ARTIFACT, LinkTypes.GENERALIZATION,
347: ElementTypes.COMPONENT, LinkTypes.NESTED_LINK,
348: ElementTypes.ARTIFACT, LinkTypes.DELEGATE);
349:
350: }
351:
352: protected void setUp() {
353: JemmyProperties.setCurrentTimeout(
354: "DialogWaiter.WaitDialogTimeout", 5000);
355: JemmyProperties.setCurrentTimeout("Waiter.WaitingTime", 3000);
356: JemmyProperties.setCurrentTimeout(
357: "DiagramElementOperator.WaitDiagramElementTime", 5000);
358: //if (!initialized) { DependencyUtils.setDefaultPreferences(); initialized=true;}
359: COUNT++;
360: String diagramName = this .diagramNamePrefix + COUNT;
361: diagram = DependencyUtils.openDiagram(projectName, diagramName,
362: NewDiagramWizardOperator.COMPONENT_DIAGRAM, workDir);
363: if (diagram == null)
364: fail("Can't open diagram '" + diagramName + "', project '"
365: + projectName + "'.");
366:
367: verifier = new DependencyDiagramVerifier(diagram, this .getLog());
368: }
369:
370: public void tearDown() {
371: closeAllModal();
372: new EventTool().waitNoEvent(1000);
373: org.netbeans.test.umllib.util.Utils.tearDown();
374: new EventTool().waitNoEvent(1000);
375:
376: //close opened diagrams
377: diagram.closeAllDocuments();
378:
379: new EventTool().waitNoEvent(1000);
380: }
381:
382: }
|