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.junit.NbTestSuite;
047: import org.netbeans.test.uml.dependencydiagram.utils.DependencyDiagramVerifier;
048: import org.netbeans.test.uml.dependencydiagram.utils.DependencyUtils;
049: import org.netbeans.test.umllib.DiagramOperator;
050: import org.netbeans.test.umllib.ElementTypes;
051: import org.netbeans.test.umllib.LinkTypes;
052: import org.netbeans.test.umllib.NewDiagramWizardOperator;
053: import org.netbeans.test.umllib.testcases.UMLTestCase;
054:
055: public class ClassDiagramNavigableAssociationLinksTests extends
056: UMLTestCase {
057: private final String projectName = "Depend_uml_cldNA";
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 ClassDiagramNavigableAssociationLinksTests(String name) {
070: super (name);
071: }
072:
073: public static NbTestSuite suite() {
074: NbTestSuite suite = new NbTestSuite(
075: ClassDiagramNavigableAssociationLinksTests.class);
076: return suite;
077: }
078:
079: // NavAssociation link tests
080: public void testSrcClassClassNavAssociation() {
081:
082: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
083: ElementTypes.CLASS, LinkTypes.NAVIGABLE_ASSOCIATION);
084:
085: }
086:
087: public void testSrcInterfaceInterfaceNavAssociation() {
088:
089: verifier
090: .testSrcOf2LinkedElements(ElementTypes.INTERFACE,
091: ElementTypes.INTERFACE,
092: LinkTypes.NAVIGABLE_ASSOCIATION);
093:
094: }
095:
096: public void testSrcEnumEnumNavAssociation() {
097:
098: verifier.testSrcOf2LinkedElements(ElementTypes.ENUMERATION,
099: ElementTypes.ENUMERATION,
100: LinkTypes.NAVIGABLE_ASSOCIATION);
101:
102: }
103:
104: public void testSrcNodeNodeNavAssociation() {
105:
106: verifier.testSrcOf2LinkedElements(ElementTypes.NODE,
107: ElementTypes.NODE, LinkTypes.NAVIGABLE_ASSOCIATION);
108:
109: }
110:
111: public void testSrcDatatypeDatatypeNavAssociation() {
112:
113: verifier.testSrcOf2LinkedElements(ElementTypes.DATATYPE,
114: ElementTypes.DATATYPE, LinkTypes.NAVIGABLE_ASSOCIATION);
115:
116: }
117:
118: public void testSrcArtifactArtifactNavAssociation() {
119:
120: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
121: ElementTypes.ARTIFACT, LinkTypes.NAVIGABLE_ASSOCIATION);
122:
123: }
124:
125: public void testSrcAliasedAliasedNavAssociation() {
126:
127: verifier.testSrcOf2LinkedElements(ElementTypes.ALIASED,
128: ElementTypes.ALIASED, LinkTypes.NAVIGABLE_ASSOCIATION);
129:
130: }
131:
132: public void testSrcUtilityUtilityNavAssociation() {
133:
134: verifier.testSrcOf2LinkedElements(ElementTypes.UTILITY_CLASS,
135: ElementTypes.UTILITY_CLASS,
136: LinkTypes.NAVIGABLE_ASSOCIATION);
137:
138: }
139:
140: public void testSrcActorActorNavAssociation() {
141:
142: verifier.testSrcOf2LinkedElements(ElementTypes.ACTOR,
143: ElementTypes.ACTOR, LinkTypes.NAVIGABLE_ASSOCIATION);
144:
145: }
146:
147: // NavComposition link tests
148: public void testSrcClassClassNavComposition() {
149:
150: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
151: ElementTypes.CLASS, LinkTypes.NAVIGABLE_COMPOSITION);
152:
153: }
154:
155: public void testSrcInterfaceInterfaceNavComposition() {
156:
157: verifier
158: .testSrcOf2LinkedElements(ElementTypes.INTERFACE,
159: ElementTypes.INTERFACE,
160: LinkTypes.NAVIGABLE_COMPOSITION);
161:
162: }
163:
164: public void testSrcEnumEnumNavComposition() {
165:
166: verifier.testSrcOf2LinkedElements(ElementTypes.ENUMERATION,
167: ElementTypes.ENUMERATION,
168: LinkTypes.NAVIGABLE_COMPOSITION);
169:
170: }
171:
172: public void testSrcNodeNodeNavComposition() {
173:
174: verifier.testSrcOf2LinkedElements(ElementTypes.NODE,
175: ElementTypes.NODE, LinkTypes.NAVIGABLE_COMPOSITION);
176:
177: }
178:
179: public void testSrcDatatypeDatatypeNavComposition() {
180:
181: verifier.testSrcOf2LinkedElements(ElementTypes.DATATYPE,
182: ElementTypes.DATATYPE, LinkTypes.NAVIGABLE_COMPOSITION);
183:
184: }
185:
186: public void testSrcArtifactArtifactNavComposition() {
187:
188: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
189: ElementTypes.ARTIFACT, LinkTypes.NAVIGABLE_COMPOSITION);
190:
191: }
192:
193: public void testSrcAliasedAliasedNavComposition() {
194:
195: verifier.testSrcOf2LinkedElements(ElementTypes.ALIASED,
196: ElementTypes.ALIASED, LinkTypes.NAVIGABLE_COMPOSITION);
197:
198: }
199:
200: public void testSrcUtilityUtilityNavComposition() {
201:
202: verifier.testSrcOf2LinkedElements(ElementTypes.UTILITY_CLASS,
203: ElementTypes.UTILITY_CLASS,
204: LinkTypes.NAVIGABLE_COMPOSITION);
205:
206: }
207:
208: public void testSrcActorActorNavComposition() {
209:
210: verifier.testSrcOf2LinkedElements(ElementTypes.ACTOR,
211: ElementTypes.ACTOR, LinkTypes.NAVIGABLE_COMPOSITION);
212:
213: }
214:
215: // NavAggregation link tests
216: public void testSrcClassClassNavAggregation() {
217:
218: verifier.testSrcOf2LinkedElements(ElementTypes.CLASS,
219: ElementTypes.CLASS, LinkTypes.NAVIGABLE_AGGREGATION);
220:
221: }
222:
223: public void testSrcInterfaceInterfaceNavAggregation() {
224:
225: verifier
226: .testSrcOf2LinkedElements(ElementTypes.INTERFACE,
227: ElementTypes.INTERFACE,
228: LinkTypes.NAVIGABLE_AGGREGATION);
229:
230: }
231:
232: public void testSrcEnumEnumNavAggregation() {
233:
234: verifier.testSrcOf2LinkedElements(ElementTypes.ENUMERATION,
235: ElementTypes.ENUMERATION,
236: LinkTypes.NAVIGABLE_AGGREGATION);
237:
238: }
239:
240: public void testSrcNodeNodeNavAggregation() {
241:
242: verifier.testSrcOf2LinkedElements(ElementTypes.NODE,
243: ElementTypes.NODE, LinkTypes.NAVIGABLE_AGGREGATION);
244:
245: }
246:
247: public void testSrcDatatypeDatatypeNavAggregation() {
248:
249: verifier.testSrcOf2LinkedElements(ElementTypes.DATATYPE,
250: ElementTypes.DATATYPE, LinkTypes.NAVIGABLE_AGGREGATION);
251:
252: }
253:
254: public void testSrcArtifactArtifactNavAggregation() {
255:
256: verifier.testSrcOf2LinkedElements(ElementTypes.ARTIFACT,
257: ElementTypes.ARTIFACT, LinkTypes.NAVIGABLE_AGGREGATION);
258:
259: }
260:
261: public void testSrcAliasedAliasedNavAggregation() {
262:
263: verifier.testSrcOf2LinkedElements(ElementTypes.ALIASED,
264: ElementTypes.ALIASED, LinkTypes.NAVIGABLE_AGGREGATION);
265:
266: }
267:
268: public void testSrcUtilityUtilityNavAggregation() {
269:
270: verifier.testSrcOf2LinkedElements(ElementTypes.UTILITY_CLASS,
271: ElementTypes.UTILITY_CLASS,
272: LinkTypes.NAVIGABLE_AGGREGATION);
273:
274: }
275:
276: public void testSrcActorActorNavAggregation() {
277:
278: verifier.testSrcOf2LinkedElements(ElementTypes.ACTOR,
279: ElementTypes.ACTOR, LinkTypes.NAVIGABLE_AGGREGATION);
280:
281: }
282:
283: // several elements with links
284: public void testMultipleLinks1() {
285:
286: verifier.testSrcOf4LinkedElements(ElementTypes.CLASS,
287: ElementTypes.CLASS, LinkTypes.NAVIGABLE_AGGREGATION,
288: ElementTypes.INTERFACE,
289: LinkTypes.NAVIGABLE_ASSOCIATION, ElementTypes.ARTIFACT,
290: LinkTypes.NAVIGABLE_COMPOSITION);
291:
292: }
293:
294: public void testMultipleLinks2() {
295:
296: verifier.testSrcOf4LinkedElements(ElementTypes.ENUMERATION,
297: ElementTypes.CLASS, LinkTypes.COMPOSITION,
298: ElementTypes.INTERFACE, LinkTypes.ASSOCIATION,
299: ElementTypes.CLASS, LinkTypes.NAVIGABLE_COMPOSITION);
300:
301: }
302:
303: public void testMultipleLinks3() {
304:
305: verifier.testSrcOf4LinkedElements(ElementTypes.INTERFACE,
306: ElementTypes.DATATYPE, LinkTypes.AGGREGATION,
307: ElementTypes.ALIASED, LinkTypes.ASSOCIATION,
308: ElementTypes.ENUMERATION, LinkTypes.ASSOCIATION);
309:
310: }
311:
312: public void testMultipleLinks4() {
313:
314: verifier.testSrcOf4LinkedElements(ElementTypes.ARTIFACT,
315: ElementTypes.CLASS, LinkTypes.COMPOSITION,
316: ElementTypes.INTERFACE,
317: LinkTypes.NAVIGABLE_COMPOSITION, ElementTypes.PACKAGE,
318: LinkTypes.NESTED_LINK);
319:
320: }
321:
322: public void testMultipleLinks5() {
323:
324: verifier.testSrcOf4LinkedElements(ElementTypes.CLASS,
325: ElementTypes.ARTIFACT, LinkTypes.NAVIGABLE_ASSOCIATION,
326: ElementTypes.ACTOR, LinkTypes.NESTED_LINK,
327: ElementTypes.INTERFACE, LinkTypes.IMPLEMENTATION);
328:
329: }
330:
331: protected void setUp() {
332: JemmyProperties.setCurrentTimeout(
333: "DialogWaiter.WaitDialogTimeout", 5000);
334: JemmyProperties.setCurrentTimeout("Waiter.WaitingTime", 3000);
335: JemmyProperties.setCurrentTimeout(
336: "DiagramElementOperator.WaitDiagramElementTime", 5000);
337: //if (!initialized) { DependencyUtils.setDefaultPreferences(); initialized=true;}
338: COUNT++;
339: String diagramName = this .diagramNamePrefix + COUNT;
340: diagram = DependencyUtils.openDiagram(projectName, diagramName,
341: NewDiagramWizardOperator.CLASS_DIAGRAM, workDir);
342: if (diagram == null)
343: fail("Can't open diagram '" + diagramName + "', project '"
344: + projectName + "'.");
345:
346: verifier = new DependencyDiagramVerifier(diagram, this .getLog());
347: }
348:
349: public void tearDown() {
350: closeAllModal();
351: org.netbeans.test.umllib.util.Utils.tearDown();
352: new EventTool().waitNoEvent(1000);
353:
354: //close opened diagrams
355: diagram.closeAllDocuments();
356:
357: new EventTool().waitNoEvent(1000);
358: }
359:
360: }
|