package com.windowtester.test.gef.tests.customer.cat; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.gef.IFigureMatcher; import com.windowtester.runtime.gef.IFigureReference; import com.windowtester.runtime.gef.internal.util.TextHelper; import com.windowtester.runtime.gef.locator.FigureCanvasLocator; import com.windowtester.runtime.gef.locator.FigureLocator; import com.windowtester.runtime.gef.locator.PaletteItemLocator; import com.windowtester.runtime.locator.XYLocator; import com.windowtester.test.gef.factories.FigureMatcherFactory; import com.windowtester.test.gef.tests.common.BaseShapeDrivingTest; /** * * <p> * Copyright (c) 2007, Instantiations, Inc.<br> * All Rights Reserved * * @author Jaime Wren */ public class T1CatShapeDrivingTest extends BaseShapeDrivingTest { public T1CatShapeDrivingTest() { super("Examples/WindowTester GEF Examples/Cat Shapes Diagram"); } //////////////////////////////////////////////////////////////////////////// // // Matchers // //////////////////////////////////////////////////////////////////////////// private class ClassByNameFigureMatcher implements IFigureMatcher{ private final String className; public ClassByNameFigureMatcher(String className) { assertNotNull(className); this.className = className; } public boolean matches(IFigureReference figure) { return figure.getFigure().getClass().getName().equals(className); } } private final ClassByNameFigureMatcher ellipseMatcher = new ClassByNameFigureMatcher("com.windowtester.internal.customer.cat.shapes.parts.MyEllipse"); private final ClassByNameFigureMatcher rectangleMatcher = new ClassByNameFigureMatcher("com.windowtester.internal.customer.cat.shapes.parts.MyRectangle"); private class ShapeNameMatcher implements IFigureMatcher { private final String name; public ShapeNameMatcher(String name) { this.name = name; } public boolean matches(IFigureReference figure) { if(TextHelper.getText(figure.getFigure()).equals(name)) { return true; } return false; } }; public void test1CatShapeDrive() throws Exception { IUIContext ui = getUI(); //select and drop ellipse ui.click(new PaletteItemLocator("Shapes/Ellipse")); ui.click(new XYLocator(new FigureCanvasLocator(), 100, 100)); //select and drop rectangle ui.click(new PaletteItemLocator("Shapes/Rectangle")); ui.click(new XYLocator(new FigureCanvasLocator(), 10, 10)); ui.pause(2000); //connect the items ui.click(new PaletteItemLocator("Solid connection")); //ui.click(new FigureLocator(ellipseMatcher)); ui.click(new FigureLocator(FigureMatcherFactory.and(ellipseMatcher, new ShapeNameMatcher("Ellipse 1")))); ui.pause(2000); //ui.click(new FigureLocator(rectangleMatcher)); ui.click(new FigureLocator(FigureMatcherFactory.and(rectangleMatcher, new ShapeNameMatcher("Rectangle 2")))); ui.pause(2000); ui.pause(5000); save(); } }