blob: fe52a500f38461fd5ee3dc046193450b7655adda [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 BSI Business Systems Integration 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:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package org.eclipse.scout.sdk.internal.test.operation;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
import org.eclipse.scout.nls.sdk.model.workspace.project.INlsProject;
import org.eclipse.scout.sdk.extensions.runtime.classes.RuntimeClasses;
import org.eclipse.scout.sdk.internal.test.AbstractSdkTestWithSampleProject;
import org.eclipse.scout.sdk.operation.ToolbuttonNewOperation;
import org.eclipse.scout.sdk.operation.jdt.JavaElementDeleteOperation;
import org.eclipse.scout.sdk.testing.SdkAssert;
import org.eclipse.scout.sdk.util.SdkProperties;
import org.eclipse.scout.sdk.util.type.TypeUtility;
import org.eclipse.scout.sdk.workspace.type.ScoutTypeComparators;
import org.eclipse.scout.sdk.workspace.type.ScoutTypeUtility;
import org.junit.Test;
/**
* <h3>{@link ToolbuttonNewOperationTest}</h3> ...
*
* @author Andreas Hoegger
* @since 3.8.0 14.03.2013
*/
public class ToolbuttonNewOperationTest extends AbstractSdkTestWithSampleProject {
@Test
public void testNewToolbutton() throws Exception {
SdkAssert.assertExist(getSharedJavaProject());
IType desktop = TypeUtility.getType("sample.client.ui.desktop.Desktop");
ToolbuttonNewOperation toolbuttonOp = new ToolbuttonNewOperation("NewToolButton01", desktop);
toolbuttonOp.setSuperTypeSignature(Signature.createTypeSignature("org.eclipse.scout.rt.client.ui.action.tool.AbstractToolButton", true));
executeBuildAssertNoCompileErrors(toolbuttonOp);
IType createdToolbutton = toolbuttonOp.getCreatedType();
SdkAssert.assertExist(createdToolbutton);
SdkAssert.assertPublic(createdToolbutton).assertNoMoreFlags();
IType[] toolButtons = TypeUtility.getInnerTypesOrdered(desktop, TypeUtility.getType(RuntimeClasses.IToolButton), ScoutTypeComparators.getOrderAnnotationComparator());
SdkAssert.assertEquals(4, toolButtons.length);
SdkAssert.assertEquals(toolbuttonOp.getElementName(), toolButtons[3].getElementName());
// clean up
JavaElementDeleteOperation delOp = new JavaElementDeleteOperation();
delOp.addMember(createdToolbutton);
executeBuildAssertNoCompileErrors(delOp);
toolButtons = TypeUtility.getInnerTypesOrdered(desktop, TypeUtility.getType(RuntimeClasses.IToolButton), ScoutTypeComparators.getOrderAnnotationComparator());
SdkAssert.assertEquals(3, toolButtons.length);
}
@Test
public void testNewToolbuttonWithTextAndSibling() throws Exception {
SdkAssert.assertExist(getSharedJavaProject());
IType desktop = TypeUtility.getType("sample.client.ui.desktop.Desktop");
ToolbuttonNewOperation toolbuttonOp = new ToolbuttonNewOperation("NewToolButton02", desktop);
toolbuttonOp.setSuperTypeSignature(Signature.createTypeSignature("org.eclipse.scout.rt.client.ui.action.tool.AbstractToolButton", true));
toolbuttonOp.setSibling(TypeUtility.getType("sample.client.ui.desktop.Desktop.SecondTool"));
INlsProject nlsProject = ScoutTypeUtility.findNlsProject(getSharedJavaProject());
INlsEntry entry = nlsProject.getEntry("Text02");
toolbuttonOp.setNlsEntry(entry);
executeBuildAssertNoCompileErrors(toolbuttonOp);
IType createdToolbutton = toolbuttonOp.getCreatedType();
SdkAssert.assertExist(createdToolbutton);
SdkAssert.assertPublic(createdToolbutton).assertNoMoreFlags();
IMethod getTextMethod = SdkAssert.assertMethodExist(createdToolbutton, SdkProperties.METHOD_NAME_GET_CONFIGURED_TEXT);
SdkAssert.assertPublic(getTextMethod).assertNoMoreFlags();
IType[] toolButtons = TypeUtility.getInnerTypesOrdered(desktop, TypeUtility.getType(RuntimeClasses.IToolButton), ScoutTypeComparators.getOrderAnnotationComparator());
SdkAssert.assertEquals(4, toolButtons.length);
SdkAssert.assertEquals(toolbuttonOp.getElementName(), toolButtons[1].getElementName());
// clean up
JavaElementDeleteOperation delOp = new JavaElementDeleteOperation();
delOp.addMember(createdToolbutton);
executeBuildAssertNoCompileErrors(delOp);
toolButtons = TypeUtility.getInnerTypesOrdered(desktop, TypeUtility.getType(RuntimeClasses.IToolButton), ScoutTypeComparators.getOrderAnnotationComparator());
SdkAssert.assertEquals(3, toolButtons.length);
}
}