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.componentdiagram;
043:
044: import java.awt.event.KeyEvent;
045: import org.netbeans.jellytools.MainWindowOperator;
046: import org.netbeans.jellytools.ProjectsTabOperator;
047: import org.netbeans.jellytools.nodes.Node;
048: import org.netbeans.jellytools.properties.PropertySheetOperator;
049: import org.netbeans.jemmy.EventTool;
050: import org.netbeans.jemmy.operators.JButtonOperator;
051: import org.netbeans.jemmy.operators.JCheckBoxOperator;
052: import org.netbeans.jemmy.operators.JDialogOperator;
053: import org.netbeans.jemmy.operators.JPopupMenuOperator;
054: import org.netbeans.jemmy.operators.JTreeOperator;
055:
056: import org.netbeans.junit.NbTestSuite; //import qa.uml.UMLClassOperator;
057: import org.netbeans.test.umllib.DiagramElementOperator;
058: import org.netbeans.test.umllib.DiagramOperator;
059: import org.netbeans.test.umllib.DrawingAreaOperator;
060: import org.netbeans.test.umllib.ElementTypes;
061: import org.netbeans.test.umllib.LinkOperator;
062: import org.netbeans.test.umllib.LinkTypes;
063: import org.netbeans.test.umllib.UMLPaletteOperator;
064: import org.netbeans.test.umllib.exceptions.NotFoundException;
065: import org.netbeans.test.umllib.testcases.UMLTestCase;
066:
067: /**
068: *
069: * @author psb
070: * @spec uml/UML-EditControl.xml
071: */
072: public class PlaceDeleteLinksByContext extends UMLTestCase {
073:
074: //some system properties
075: private static String contextPropItemName = "Properties";
076: private static String umlPropertyWindowTitle = "Project Properties";
077: private static String umlSourcePackagesLabel = "Source Packages";
078: private static String umlSourcePackagesColumn = "Folder Label";
079: private static String umlSourceUsageColumn = "Model?";
080: private static String mainTreeTabName = "Projects";
081: //common test properties
082: private static String prName = "componentDiagramProjectLDC";
083: private static String project = prName + "|Model";
084: private static String sourceProject = "source";
085: private static boolean codeSync = false;
086: private static String defaultNewElementName = org.netbeans.test.uml.componentdiagram.utils.Utils.defaultNewElementName;
087: private static String defaultReturnType = org.netbeans.test.uml.componentdiagram.utils.Utils.defaultReturnType;
088: private static String defaultAttributeType = org.netbeans.test.uml.componentdiagram.utils.Utils.defaultAttributeType;
089: private static String defaultAttributeVisibility = org.netbeans.test.uml.componentdiagram.utils.Utils.defaultAttributeVisibility;
090: private static String defaultOperationVisibility = org.netbeans.test.uml.componentdiagram.utils.Utils.defaultOperationVisibility;
091: private ProjectsTabOperator pto = null;
092: private Node lastDiagramNode = null;
093: private JTreeOperator prTree = null;
094: private static String workdir = System.getProperty("xtest.workdir");
095: private String lastTestCase = null;
096: //--
097: private static String componentDiagramName1 = "cpD1";
098: private static String workPkg1 = "pkg1";
099: private static String element1 = "Generalization";
100: private static String treeNode1 = element1;
101: private static String elementName1 = "";
102: private static LinkTypes elementType1 = LinkTypes.GENERALIZATION;
103: private static ElementTypes fromType1 = ElementTypes.CLASS;
104: private static ElementTypes toType1 = ElementTypes.CLASS;
105: private static boolean eIO1 = false;
106: //--
107: private static String componentDiagramName2 = "cpD2";
108: private static String workPkg2 = "pkg2";
109: private static String element2 = "Implementation";
110: private static String treeNode2 = element2;
111: private static String elementName2 = "";
112: private static LinkTypes elementType2 = LinkTypes.IMPLEMENTATION;
113: private static ElementTypes fromType2 = ElementTypes.CLASS;
114: private static ElementTypes toType2 = ElementTypes.INTERFACE;
115: private static boolean eIO2 = false;
116: //--
117: //SPECIAL CASE
118: /* private static String componentDiagramName3 = "cpD3";
119: private static String workPkg3 = "pkg3";
120: private static String element3="Nested Link";
121: private static String treeNode3=element3;
122: private static String elementName3=defaultNewElementName;
123: private static LinkTypes elementType3=LinkTypes.NESTED_LINK;
124: private static ElementTypes fromType3=ElementTypes.CLASS;
125: private static ElementTypes toType3=ElementTypes.CLASS;
126: private static boolean eIO3=false;*/
127: //--
128: private static String componentDiagramName4 = "cpD4";
129: private static String workPkg4 = "pkg4";
130: private static String element4 = "Delegate";
131: private static String treeNode4 = element4;
132: private static String elementName4 = "";
133: private static LinkTypes elementType4 = LinkTypes.DELEGATE;
134: private static ElementTypes fromType4 = ElementTypes.CLASS;
135: private static ElementTypes toType4 = ElementTypes.COMPONENT;
136: private static boolean eIO4 = false;
137: //--
138: //SPECIAL CASE
139: /*private static String componentDiagramName5 = "cpD5";
140: private static String workPkg5 = "pkg5";
141: private static String element5="Assembly Connector";
142: private static String treeNode5=element5;
143: private static String elementName5="";
144: private static LinkTypes elementType5=LinkTypes.USAGE;
145: private static ElementTypes fromType5=ElementTypes.COMPONENT;
146: private static ElementTypes toType5=ElementTypes.INTERFACE;
147: private static boolean eIO5=false;*/
148: //--
149: private static String componentDiagramName6 = "cpD6";
150: private static String workPkg6 = "pkg6";
151: private static String element6 = "Derivation Edge";
152: private static String treeNode6 = element6;
153: private static String elementName6 = "";
154: private static LinkTypes elementType6 = LinkTypes.DERIVATION_EDGE;
155: private static ElementTypes fromType6 = ElementTypes.DERIVATION_CLASSIFIER;
156: private static ElementTypes toType6 = ElementTypes.TEMPLATE_CLASS;
157: private static boolean eIO6 = false;
158: //--
159: private static String componentDiagramName7 = "cpD7";
160: private static String workPkg7 = "pkg7";
161: private static String element7 = "Association";
162: private static String treeNode7 = element7;
163: private static String elementName7 = "";
164: private static LinkTypes elementType7 = LinkTypes.ASSOCIATION;
165: private static ElementTypes fromType7 = ElementTypes.COMPONENT;
166: private static ElementTypes toType7 = ElementTypes.CLASS;
167: private static boolean eIO7 = false;
168: //--
169: private static String componentDiagramName8 = "cpD8";
170: private static String workPkg8 = "pkg8";
171: private static String element8 = "Composition";
172: private static String treeNode8 = element8;
173: private static String elementName8 = "";
174: private static LinkTypes elementType8 = LinkTypes.COMPOSITION;
175: private static ElementTypes fromType8 = ElementTypes.COMPONENT;
176: private static ElementTypes toType8 = ElementTypes.CLASS;
177: private static boolean eIO8 = false;
178: //--
179: private static String componentDiagramName9 = "cpD9";
180: private static String workPkg9 = "pkg9";
181: private static String element9 = "Navigable Composition";
182: private static String treeNode9 = "Composition";
183: private static String elementName9 = "";
184: private static LinkTypes elementType9 = LinkTypes.NAVIGABLE_COMPOSITION;
185: private static ElementTypes fromType9 = ElementTypes.COMPONENT;
186: private static ElementTypes toType9 = ElementTypes.CLASS;
187: private static boolean eIO9 = false;
188: //--
189: private static String componentDiagramName10 = "cpD10";
190: private static String workPkg10 = "pkg10";
191: private static String element10 = "Aggregation";
192: private static String treeNode10 = element10;
193: private static String elementName10 = "";
194: private static LinkTypes elementType10 = LinkTypes.AGGREGATION;
195: private static ElementTypes fromType10 = ElementTypes.COMPONENT;
196: private static ElementTypes toType10 = ElementTypes.CLASS;
197: private static boolean eIO10 = false;
198: //--
199: private static String componentDiagramName11 = "cpD11";
200: private static String workPkg11 = "pkg11";
201: private static String element11 = "Navigable Aggregation";
202: private static String treeNode11 = element11;
203: private static String elementName11 = "";
204: private static LinkTypes elementType11 = LinkTypes.NAVIGABLE_AGGREGATION;
205: private static ElementTypes fromType11 = ElementTypes.COMPONENT;
206: private static ElementTypes toType11 = ElementTypes.CLASS;
207: private static boolean eIO11 = false;
208: //--
209: private static String componentDiagramName12 = "cpD12";
210: private static String workPkg12 = "pkg12";
211: private static String element12 = "Navigable Association";
212: private static String treeNode12 = element12;
213: private static String elementName12 = "";
214: private static LinkTypes elementType12 = LinkTypes.NAVIGABLE_ASSOCIATION;
215: private static ElementTypes fromType12 = ElementTypes.COMPONENT;
216: private static ElementTypes toType12 = ElementTypes.CLASS;
217: private static boolean eIO12 = false;
218:
219: //--
220: //SPECIAL CASE
221: /*private static String componentDiagramName13 = "cpD13";
222: private static String workPkg13 = "pkg13";
223: private static String element13="Association Class";
224: private static String treeNode13=element13;
225: private static String elementName13="";
226: private static LinkTypes elementType13=LinkTypes.ASSOCIATION_CLASS;
227: private static ElementTypes fromType13=ElementTypes.COMPONENT;
228: private static ElementTypes toType13=ElementTypes.CLASS;
229: private static boolean eIO13=false;*/
230: //--
231: //Special case
232: /* private static String componentDiagramName14 = "cpD14";
233: private static String workPkg14 = "pkg14";
234: private static String element14="Role Binding";
235: private static String treeNode14=element14;
236: private static String elementName14=defaultNewElementName;
237: private static LinkTypes elementType14=LinkTypes.ROLE_BINDING;
238: private static ElementTypes fromType14=ElementTypes.DESIGN_PATTERN;
239: private static ElementTypes toType14=ElementTypes.ACTOR_ROLE;
240: private static boolean eIO14=false;*/
241: //--
242: //Special case
243: /*private static String componentDiagramName15 = "cpD15";
244: private static String workPkg15 = "pkg15";
245: private static String element15="Link Comment";
246: private static String treeNode15=element15;
247: private static String elementName15="";
248: private static LinkTypes elementType15=LinkTypes.LINK_COMMENT;
249: private static ElementTypes fromType14=ElementTypes.CLASS;
250: private static ElementTypes toType14=ElementTypes.COMMENT;
251: private static boolean eIO14=false;*/
252:
253: /** Need to be defined because of JUnit */
254: public PlaceDeleteLinksByContext(String name) {
255: super (name);
256: }
257:
258: public static NbTestSuite suite() {
259: NbTestSuite suite = new NbTestSuite(
260: org.netbeans.test.uml.componentdiagram.PlaceDeleteLinksByContext.class);
261: return suite;
262: }
263:
264: private DiagramOperator createOrOpenDiagram(String project,
265: String workPkg, String diagram) {
266: org.netbeans.test.umllib.Utils.RetAll rt = org.netbeans.test.umllib.Utils
267: .createOrOpenDiagram(
268: project,
269: workPkg,
270: diagram,
271: org.netbeans.test.umllib.NewDiagramWizardOperator.COMPONENT_DIAGRAM);
272: pto = rt.pto;
273: prTree = new JTreeOperator(pto);
274: lastDiagramNode = rt.lastDiagramNode;
275: return rt.dOp;
276: }
277:
278: public void testDeleteLinkByContext1() {
279: lastTestCase = getCurrentTestMethodName();
280: testLinkPlaceDelete(workPkg1, componentDiagramName1, fromType1,
281: toType1, element1, elementName1, elementType1,
282: treeNode1, eIO1);
283: }
284:
285: public void testDeleteLinkByContext2() {
286: lastTestCase = getCurrentTestMethodName();
287: testLinkPlaceDelete(workPkg2, componentDiagramName2, fromType2,
288: toType2, element2, elementName2, elementType2,
289: treeNode2, eIO2);
290: }
291:
292: /* public void testDeleteLinkByContext3() {
293: testLinkPlaceDelete(workPkg3,componentDiagramName3, fromType3, toType3,element3,elementName3,elementType3,treeNode3,eIO3);
294: }*/
295: public void testDeleteLinkByContext4() {
296: lastTestCase = getCurrentTestMethodName();
297: testLinkPlaceDelete(workPkg4, componentDiagramName4, fromType4,
298: toType4, element4, elementName4, elementType4,
299: treeNode4, eIO4);
300: }
301:
302: /*public void testDeleteLinkByContext5() {
303: testLinkPlaceDelete(workPkg5,componentDiagramName5, fromType5, toType5,element5,elementName5,elementType5,treeNode5,eIO5);
304: }*/
305: public void testDeleteLinkByContext6() {
306: lastTestCase = getCurrentTestMethodName();
307: testLinkPlaceDelete(workPkg6, componentDiagramName6, fromType6,
308: toType6, element6, elementName6, elementType6,
309: treeNode6, eIO6);
310: }
311:
312: public void testDeleteLinkByContext7() {
313: lastTestCase = getCurrentTestMethodName();
314: testLinkPlaceDelete(workPkg7, componentDiagramName7, fromType7,
315: toType7, element7, elementName7, elementType7,
316: treeNode7, eIO7);
317: }
318:
319: public void testDeleteLinkByContext8() {
320: lastTestCase = getCurrentTestMethodName();
321: testLinkPlaceDelete(workPkg8, componentDiagramName8, fromType8,
322: toType8, element8, elementName8, elementType8,
323: treeNode8, eIO8);
324: }
325:
326: public void testDeleteLinkByContext9() {
327: lastTestCase = getCurrentTestMethodName();
328: testLinkPlaceDelete(workPkg9, componentDiagramName9, fromType9,
329: toType9, element9, elementName9, elementType9,
330: treeNode1, eIO9);
331: }
332:
333: public void testDeleteLinkByContext10() {
334: lastTestCase = getCurrentTestMethodName();
335: testLinkPlaceDelete(workPkg10, componentDiagramName10,
336: fromType10, toType10, element10, elementName10,
337: elementType10, treeNode1, eIO10);
338: }
339:
340: public void testDeleteLinkByContext11() {
341: lastTestCase = getCurrentTestMethodName();
342: testLinkPlaceDelete(workPkg11, componentDiagramName11,
343: fromType11, toType11, element11, elementName11,
344: elementType11, treeNode1, eIO11);
345: }
346:
347: public void testDeleteLinkByContext12() {
348: lastTestCase = getCurrentTestMethodName();
349: testLinkPlaceDelete(workPkg12, componentDiagramName12,
350: fromType12, toType12, element12, elementName12,
351: elementType12, treeNode12, eIO12);
352: }
353:
354: /*public void testDeleteLinkByContext13() {
355: testLinkPlaceDelete(workPkg13,componentDiagramName13, fromType13, toType13,element13,elementName13,elementType13,treeNode13,eIO13);
356: }*/
357: /*public void testDeleteLinkByContext14() {
358: testLinkPlaceDelete(workPkg14,componentDiagramName14, fromType14, toType14,element14,elementName14,elementType14,treeNode14,eIO14);
359: }*/
360: /*public void testDeleteLinkByContext15() {
361: testLinkPlaceDelete(workPkg15,componentDiagramName15, fromType15, toType15,element15,elementName15,elementType15,treeNode15,eIO15);
362: }*/
363:
364: public void setUp() {
365: System.out.println("######## " + getName() + " #######");
366: pto = ProjectsTabOperator.invoke();
367: if (!codeSync) {
368: org.netbeans.test.uml.componentdiagram.utils.Utils
369: .commonComponentDiagramSetup(workdir, prName);
370: //
371: codeSync = true;
372: }
373:
374: }
375:
376: public void tearDown() {
377: org.netbeans.test.umllib.util.Utils
378: .makeScreenShot(lastTestCase);
379: log("LAST_CASE:" + lastTestCase);
380: //popup protection
381: MainWindowOperator.getDefault().pushKey(KeyEvent.VK_ESCAPE);
382: new EventTool().waitNoEvent(1000);
383: //
384: closeAllModal();
385: org.netbeans.test.umllib.util.Utils.saveAll();
386: if (lastDiagramNode != null) {
387: lastDiagramNode.collapse();
388: new Node(lastDiagramNode.tree(), lastDiagramNode
389: .getParentPath()).collapse();
390: }
391: try {
392: DiagramOperator d = new DiagramOperator("cpD");
393: d.closeAllDocuments();
394: d.waitClosed();
395: new EventTool().waitNoEvent(1000);
396: } catch (Exception ex) {
397: }
398: ;
399: closeAllModal();
400: //save
401: org.netbeans.test.umllib.util.Utils.tearDown();
402: }
403:
404: private void testLinkPlaceDelete(String workPkg,
405: String diagramName, ElementTypes fromType,
406: ElementTypes toType, String element, String elementName,
407: LinkTypes elementType, String treeNode, boolean useIO) {
408: String localElName1 = "El1";
409: String localElName2 = "El2";
410: String newName = "LinkName";
411: //
412: DiagramOperator d = createOrOpenDiagram(project, workPkg,
413: diagramName);
414: //
415: Node pkgNode = new Node(prTree, lastDiagramNode.getParentPath());
416: int numChild = pkgNode.getChildren().length;
417: //
418: UMLPaletteOperator pl = new UMLPaletteOperator();
419: DrawingAreaOperator drAr = d.getDrawingArea();
420: //
421: java.awt.Point a = drAr.getFreePoint();
422: DiagramElementOperator dE1 = null, dE2 = null;
423: try {
424: dE1 = d.putElementOnDiagram(localElName1, fromType, a.x,
425: a.y);
426: a = drAr.getFreePoint(150);
427: dE2 = d.putElementOnDiagram(localElName2, toType, a.x, a.y);
428: } catch (Exception ex) {
429:
430: }
431: //
432: try {
433: pl.selectTool(element);
434: } catch (NotFoundException ex) {
435: fail("BLOCKING: Can't find '" + element + "' in paletter");
436: }
437: //
438: drAr.clickMouse(dE1.getCenterPoint().x, dE1.getCenterPoint().y,
439: 1);
440: drAr.clickMouse(dE2.getCenterPoint().x, dE2.getCenterPoint().y,
441: 1);
442: //
443: new EventTool().waitNoEvent(2000);
444: drAr.pushKey(KeyEvent.VK_ESCAPE);
445: new EventTool().waitNoEvent(500);
446: LinkOperator testedlink = null;
447: try {
448: /* In netbeans6.0 composition and navigable composition link are shown as aggregation in
449: * project view as they are special form of aggregation. See Issue 116868
450: * Similar to navigable aggregation and navigable association.The default name
451: * aggrgation and association are used in project modle.
452: * As workaround for test, here set type to their default type.
453: */
454: LinkTypes elementTypeInProjectTree = elementType;
455: if ((elementType == LinkTypes.COMPOSITION)
456: || (elementType == LinkTypes.NAVIGABLE_COMPOSITION))
457: elementTypeInProjectTree = LinkTypes.AGGREGATION;
458: if (elementType == LinkTypes.NAVIGABLE_AGGREGATION)
459: elementTypeInProjectTree = LinkTypes.AGGREGATION;
460: if (elementType == LinkTypes.NAVIGABLE_ASSOCIATION)
461: elementTypeInProjectTree = LinkTypes.ASSOCIATION;
462: testedlink = LinkOperator.findLink(dE1, dE2,
463: new LinkOperator.LinkByTypeChooser(
464: elementTypeInProjectTree), 0);
465: } catch (Exception ex) {
466: fail(element + " of type " + elementType
467: + " wasn't added to diagram:" + ex);
468: }
469: if (testedlink == null) {
470: LinkOperator altLink = null;
471: try {
472: altLink = LinkOperator.findLink(dE1, dE2,
473: new LinkOperator.LinkByTypeChooser(
474: LinkTypes.ANY), 0);
475: } catch (Exception ex) {
476: fail("any link find failed.");
477: }
478: if (altLink != null)
479: fail("Can't find " + elementType
480: + " link between elements, but the is "
481: + altLink.getType() + " link.");
482: }
483: d.makeComponentVisible();
484: testedlink.select();
485: //
486: PropertySheetOperator ps = null;
487: try {
488: ps = new PropertySheetOperator(elementType
489: + " - Properties");
490: } catch (org.netbeans.jemmy.TimeoutExpiredException ex) {
491: ps = new PropertySheetOperator();
492: throw ex;
493: }
494: org.netbeans.test.uml.componentdiagram.utils.Utils
495: .setTextProperty("Name", newName);
496: //
497: JPopupMenuOperator popM = testedlink.getPopup();
498: popM.waitComponentShowing(true);
499: popM.waitComponentVisible(true);
500: try {
501: Thread.sleep(3000);
502: } catch (Exception ex) {
503: }
504: popM.pushKey(KeyEvent.VK_LEFT);
505: popM = new JPopupMenuOperator();
506: // try{Thread.sleep(5000);}catch(Exception ex){}
507: popM.showMenuItem("Edit|Delete").pushNoBlock();
508: JDialogOperator delDlg = new JDialogOperator("Delete");
509: try {
510: Thread.sleep(1000);
511: } catch (Exception ex) {
512: }
513: delDlg.waitComponentShowing(true);
514: JCheckBoxOperator chk = new JCheckBoxOperator(delDlg);
515: chk.waitComponentShowing(true);
516: if (!chk.isSelected())
517: chk.clickMouse();
518: chk.waitSelected(true);
519: new JButtonOperator(delDlg, "Yes").pushNoBlock();
520: //
521: new DiagramElementOperator(d, localElName1);
522: new DiagramElementOperator(d, localElName2);
523: //
524: testedlink = null;
525: try {
526: for (int i = 0; i < 10; i++) {
527: testedlink = LinkOperator
528: .findLink(dE1, dE2,
529: new LinkOperator.LinkByTypeChooser(
530: elementType), 0);
531: if (testedlink == null)
532: break;
533: Thread.sleep(100);
534: }
535: } catch (Exception ex) {
536:
537: }
538: assertFalse("Link remains on diagram after deletion",
539: testedlink != null);
540: //
541: Node n1 = new Node(pkgNode, localElName1);
542: Node n2 = new Node(pkgNode, localElName2);
543: Node rel1 = null;
544: if (n1.isChildPresent("Relationships"))
545: rel1 = new Node(n1, "Relationships");
546: Node rel2 = null;
547: if (n2.isChildPresent("Relationships"))
548: rel2 = new Node(n2, "Relationships");
549: new EventTool().waitNoEvent(500);
550: if (useIO) {
551: assertFalse(
552: "There is Outgoing Edges node remains after link deletion",
553: rel1 != null
554: && rel1.isChildPresent("Outgoing Edges"));
555: assertFalse(
556: "There is Incoming Edges node remains after link deletion",
557: rel2 != null
558: && rel2.isChildPresent("Incoming Edges"));
559: } else {
560: assertFalse("There should be no " + newName
561: + " node within Relationships node of "
562: + localElName1, rel1 != null
563: && rel1.isChildPresent(newName));
564: assertFalse("There should be no " + newName
565: + " node within Relationships node of "
566: + localElName2, rel2 != null
567: && rel2.isChildPresent(newName));
568: }
569: }
570: }
|