/******************************************************************************* * <copyright> * * Copyright (c) 2012, 2012 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Henrik Rentz-Reichert - mwenz - Bug 376544 - bug in re-connecting a connection with identical start and end anchor * * </copyright> * *******************************************************************************/ package org.eclipse.graphiti.tests.cases; import static org.junit.Assert.assertEquals; import org.eclipse.graphiti.features.context.impl.ReconnectionContext; import org.eclipse.graphiti.features.impl.DefaultReconnectionFeature; import org.eclipse.graphiti.mm.pictograms.BoxRelativeAnchor; import org.eclipse.graphiti.mm.pictograms.FreeFormConnection; import org.eclipse.graphiti.mm.pictograms.Shape; import org.eclipse.graphiti.services.Graphiti; import org.eclipse.graphiti.services.IPeService; import org.eclipse.graphiti.tests.reuse.GFAbstractTestCase; import org.junit.Test; public class ReconnectionTest extends GFAbstractTestCase { public ReconnectionTest() { super(); } @Test public void testReconnectLoopToOtherAnchor() throws Exception { IPeService peService = Graphiti.getPeService(); Shape shape = peService.createShape(null, true); BoxRelativeAnchor anchor1 = peService.createBoxRelativeAnchor(shape); BoxRelativeAnchor anchor2 = peService.createBoxRelativeAnchor(shape); FreeFormConnection connection = peService.createFreeFormConnection(null); connection.setStart(anchor1); connection.setEnd(anchor1); ReconnectionContext context = new ReconnectionContext(connection, anchor1, anchor2, null); context.setReconnectType(ReconnectionContext.RECONNECT_TARGET); DefaultReconnectionFeature reconnectionFeature = new DefaultReconnectionFeature(null); reconnectionFeature.reconnect(context); assertEquals(anchor2, connection.getEnd()); } }