blob: 64ae5941456df6ea556ce33d0e8388dff85d593d [file] [log] [blame]
/*******************************************************************************
* <copyright>
*
* Copyright (c) 2005, 2010 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:
* SAP AG - initial API, implementation and documentation
* mwenz - Bug 331715: Support for rectangular grids in diagrams
*
* </copyright>
*
*******************************************************************************/
package org.eclipse.graphiti.tests.cases;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
import org.eclipse.graphiti.mm.algorithms.Ellipse;
import org.eclipse.graphiti.mm.algorithms.Image;
import org.eclipse.graphiti.mm.algorithms.MultiText;
import org.eclipse.graphiti.mm.algorithms.PlatformGraphicsAlgorithm;
import org.eclipse.graphiti.mm.algorithms.Polygon;
import org.eclipse.graphiti.mm.algorithms.Polyline;
import org.eclipse.graphiti.mm.algorithms.Rectangle;
import org.eclipse.graphiti.mm.algorithms.RoundedRectangle;
import org.eclipse.graphiti.mm.algorithms.Text;
import org.eclipse.graphiti.mm.algorithms.styles.Point;
import org.eclipse.graphiti.mm.algorithms.styles.Style;
import org.eclipse.graphiti.mm.pictograms.Diagram;
import org.eclipse.graphiti.mm.pictograms.Shape;
import org.eclipse.graphiti.services.Graphiti;
import org.eclipse.graphiti.services.ICreateService;
import org.eclipse.graphiti.tests.GFAbstractCreateTestCase;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CreateServiceTest extends GFAbstractCreateTestCase {
public static ICreateService crs = Graphiti.getCreateService();
private Diagram d;
private Shape s1;
@BeforeClass
public static void prepareClass() {
}
@Before
public void initializeTest() {
d = Graphiti.getPeCreateService().createDiagram("tutorial", "test", true);
assertNotNull(d);
s1 = Graphiti.getPeCreateService().createShape(d, true);
s1.setGraphicsAlgorithm(Graphiti.getGaCreateService().createRectangle(d));
assertNotNull(s1);
ResourceImpl resource = new ResourceImpl();
resource.getContents().add(d);
}
@Test
public void createDefaultMultiText() {
MultiText multiText = crs.createDefaultMultiText(d, s1);
assertNotNull(multiText);
assertEquals(DEFAULT_FONT, multiText.getFont().getName());
checkTextDefaults(multiText, "");
}
@Test
public void createDefaultMultiText2() {
MultiText multiText = crs.createDefaultMultiText(d, s1, VALUE);
assertNotNull(multiText);
assertEquals(DEFAULT_FONT, multiText.getFont().getName());
checkTextDefaults(multiText, VALUE);
}
@Test
public void createDefaultText() {
Text text = crs.createDefaultText(d, s1);
assertNotNull(text);
assertEquals(DEFAULT_FONT, text.getFont().getName());
checkTextDefaults(text, "");
}
@Test
public void createDefaultText2() {
Text text = crs.createDefaultText(d, s1, VALUE);
assertNotNull(text);
assertEquals(DEFAULT_FONT, text.getFont().getName());
checkTextDefaults(text, VALUE);
}
@Test
public void createEllipse() {
Ellipse ellipse = crs.createEllipse(s1);
assertNotNull(ellipse);
checkGraphicsAlgorithmDefaults(ellipse);
}
@Test
public void createImage() {
Image im = crs.createImage(d, VALUE);
checkGraphicsAlgorithmDefaults(im);
checkImageDefaults(im);
}
@Test
public void createInvisibleRectangle() {
Rectangle invisibleRect = crs.createInvisibleRectangle(s1);
assertFalse(invisibleRect.getLineVisible());
}
@Test
public void createMultiText() {
MultiText multiText = crs.createMultiText(s1);
assertNotNull(multiText);
assertNull(multiText.getFont());
checkTextDefaults(multiText, "");
}
@Test
public void createMultiText2() {
MultiText multiText = crs.createMultiText(s1, VALUE);
assertNotNull(multiText);
assertNull(multiText.getFont());
checkTextDefaults(multiText, VALUE);
}
@Test
public void createPlatformGa() {
PlatformGraphicsAlgorithm pGa = crs.createPlatformGraphicsAlgorithm(s1, VALUE);
assertEquals(s1, pGa.eContainer());
assertEquals(VALUE, pGa.getId());
}
@Test
public void createPoint() {
Point point = crs.createPoint(0, 1);
assertEquals(0, point.getX());
assertEquals(1, point.getY());
point = crs.createPoint(1, 0, 2, 3);
assertEquals(1, point.getX());
assertEquals(0, point.getY());
assertEquals(2, point.getBefore());
assertEquals(3, point.getAfter());
}
@Test
public void createPointList() {
List<Point> points = crs.createPointList(new int[] { 1, 2, 3, 4 });
Point p1 = points.get(0);
assertEquals(1, p1.getX());
assertEquals(2, p1.getY());
Point p2 = points.get(1);
assertEquals(3, p2.getX());
assertEquals(4, p2.getY());
}
@Test
public void createPointList2() {
List<Point> points = crs.createPointList(new int[] { 1, 2, 3, 4 }, new int[] { 5, 6, 7, 8 });
Point p1 = points.get(0);
assertEquals(1, p1.getX());
assertEquals(2, p1.getY());
assertEquals(5, p1.getBefore());
assertEquals(6, p1.getAfter());
Point p2 = points.get(1);
assertEquals(3, p2.getX());
assertEquals(4, p2.getY());
assertEquals(7, p2.getBefore());
assertEquals(8, p2.getAfter());
}
@Test
public void createPolygon() {
Polygon polygon = crs.createPolygon(s1);
assertEquals(polygon, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polygon);
}
@Test
public void createPolygon2() {
List<Point> points = crs.createPointList(new int[] { 1, 2, 3, 4 });
Polygon polygon = crs.createPolygon(s1, points);
assertEquals(polygon, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polygon);
EList<Point> points2 = polygon.getPoints();
assertEquals(points, points2);
}
@Test
public void createPolygon3() {
int[] points = new int[] { 1, 2, 3, 4 };
Polygon polygon = crs.createPolygon(s1, points);
assertEquals(polygon, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polygon);
EList<Point> points2 = polygon.getPoints();
assertEquals(1, points2.get(0).getX());
assertEquals(2, points2.get(0).getY());
assertEquals(3, points2.get(1).getX());
assertEquals(4, points2.get(1).getY());
int[] beforeAfter = new int[] { 5, 6, 7, 8 };
polygon = crs.createPolygon(s1, points, beforeAfter);
checkGraphicsAlgorithmDefaults(polygon);
points2 = polygon.getPoints();
assertEquals(1, points2.get(0).getX());
assertEquals(2, points2.get(0).getY());
assertEquals(3, points2.get(1).getX());
assertEquals(4, points2.get(1).getY());
assertEquals(5, points2.get(0).getBefore());
assertEquals(6, points2.get(0).getAfter());
assertEquals(7, points2.get(1).getBefore());
assertEquals(8, points2.get(1).getAfter());
}
@Test
public void createPolyline() {
Polyline polyline = crs.createPolyline(s1);
assertEquals(polyline, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polyline);
}
@Test
public void createPolyline2() {
List<Point> points = crs.createPointList(new int[] { 1, 2, 3, 4 });
Polyline polyline = crs.createPolyline(s1, points);
assertEquals(polyline, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polyline);
EList<Point> points2 = polyline.getPoints();
assertEquals(points, points2);
}
@Test
public void createPolyline3() {
int[] points = new int[] { 1, 2, 3, 4 };
Polyline polyline = crs.createPolyline(s1, points);
assertEquals(polyline, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(polyline);
EList<Point> points2 = polyline.getPoints();
assertEquals(1, points2.get(0).getX());
assertEquals(2, points2.get(0).getY());
assertEquals(3, points2.get(1).getX());
assertEquals(4, points2.get(1).getY());
int[] beforeAfter = new int[] { 5, 6, 7, 8 };
polyline = crs.createPolyline(s1, points, beforeAfter);
checkGraphicsAlgorithmDefaults(polyline);
points2 = polyline.getPoints();
assertEquals(1, points2.get(0).getX());
assertEquals(2, points2.get(0).getY());
assertEquals(3, points2.get(1).getX());
assertEquals(4, points2.get(1).getY());
assertEquals(5, points2.get(0).getBefore());
assertEquals(6, points2.get(0).getAfter());
assertEquals(7, points2.get(1).getBefore());
assertEquals(8, points2.get(1).getAfter());
}
@Test
public void createRectangle() {
Rectangle rect = crs.createRectangle(s1);
assertEquals(rect, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(rect);
}
@Test
public void createRoundedRectangle() {
RoundedRectangle rect = crs.createRoundedRectangle(s1, 5, 6);
assertEquals(rect, s1.getGraphicsAlgorithm());
checkGraphicsAlgorithmDefaults(rect);
assertEquals(5, rect.getCornerWidth());
assertEquals(6, rect.getCornerHeight());
}
@Test
public void createStyle() {
Style style = crs.createStyle(d, VALUE);
assertEquals(VALUE, style.getId());
assertEquals(1, d.getStyles().size());
}
@Test
public void createDiagram() {
Diagram d0 = Graphiti.getCreateService().createDiagram("tutorial", "D0", 0, true);
assertNotNull(d0);
assertEquals("gridUnit must be 0, was: " + d0.getGridUnit(), 0, d0.getGridUnit());
assertEquals("verticalGridUnit must be -1, was: " + d0.getGridUnit(), -1, d0.getVerticalGridUnit());
Diagram d1 = Graphiti.getCreateService().createDiagram("tutorial", "D1", true);
assertNotNull(d1);
assertEquals("gridUnit must be 10 when not set explicitly, was: " + d1.getGridUnit(), 10, d1.getGridUnit());
assertEquals("verticalGridUnit must be -1 when not set explicitly set, was: " + d1.getGridUnit(), -1, d1.getVerticalGridUnit());
Diagram d2 = Graphiti.getCreateService().createDiagram("tutorial", "D2", 20, true);
assertNotNull(d2);
assertEquals("gridUnit must be set, was: " + d2.getGridUnit(), 20, d2.getGridUnit());
assertEquals("verticalGridUnit must be -1 when not set explicitly set, was: " + d2.getVerticalGridUnit(), -1,
d2.getVerticalGridUnit());
Diagram d3 = Graphiti.getCreateService().createDiagram("tutorial", "D3", 20, 10, true);
assertNotNull(d3);
assertEquals("gridUnit must be set, was: " + d3.getGridUnit(), 20, d3.getGridUnit());
assertEquals("verticalGridUnit must be set, was: " + d3.getVerticalGridUnit(), 10, d3.getVerticalGridUnit());
}
}