blob: 9313b7a88f4b5e6c4cc0e687a5ef88548e10ad23 [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.form;
import org.eclipse.jdt.core.IJavaProject;
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.form.FormStackNewOperation;
import org.eclipse.scout.sdk.operation.service.ServiceRegistrationDescription;
import org.eclipse.scout.sdk.testing.SdkAssert;
import org.eclipse.scout.sdk.util.pde.PluginModelHelper;
import org.eclipse.scout.sdk.util.type.TypeUtility;
import org.eclipse.scout.sdk.workspace.type.ScoutTypeUtility;
import org.junit.Assert;
import org.junit.Test;
/**
* <h3>{@link FormStackNewOperationTest}</h3> ...
*
* @author Andreas Hoegger
* @since 3.8.0 14.03.2013
*/
public class FormStackNewOperationTest extends AbstractSdkTestWithSampleProject {
@Test
public void testNewForm() throws Exception {
IJavaProject clientProject = getClientJavaProject();
Assert.assertTrue(TypeUtility.exists(clientProject));
String typeName = "TestForm01";
String packageName = "sample.client.test.output";
FormStackNewOperation formOp = new FormStackNewOperation(typeName, packageName, getClientJavaProject());
formOp.setFormatSource(true);
formOp.setSuperTypeSignature(RuntimeClasses.getSuperTypeSignature(RuntimeClasses.IForm, getClientJavaProject()));
formOp.addServiceProxyRegistrationProject(getClientJavaProject());
formOp.addServiceRegistration(new ServiceRegistrationDescription(getServerJavaProject()));
formOp.setCreateButtonCancel(true);
formOp.setCreateButtonOk(true);
formOp.setCreateModifyHandler(true);
formOp.setCreateNewHandler(true);
formOp.setFormDataPackage("sample.shared.test.output");
formOp.setFormDataProject(getSharedJavaProject());
formOp.setFormIdName("testId");
formOp.setFormIdSignature(Signature.SIG_LONG);
// nls
INlsProject nlsProject = ScoutTypeUtility.findNlsProject(getSharedJavaProject());
INlsEntry entry = nlsProject.getEntry("Text02");
formOp.setNlsEntry(entry);
formOp.setPermissionCreateName("CreateTestForm01Permission");
formOp.setPermissionCreatePackage("sample.shared.test.output");
formOp.setPermissionCreateProject(getSharedJavaProject());
formOp.setPermissionReadName("ReadTestForm01Permission");
formOp.setPermissionReadPackage("sample.shared.test.output");
formOp.setPermissionReadProject(getSharedJavaProject());
formOp.setPermissionUpdateName("UpdateTestForm01Permission");
formOp.setPermissionUpdatePackage("sample.shared.test.output");
formOp.setPermissionUpdateProject(getSharedJavaProject());
formOp.setServiceImplementationName("Test01Service");
formOp.setServiceImplementationProject(getServerJavaProject());
formOp.setServiceImplementationPackage("sample.server.test.output");
formOp.setServiceInterfaceName("ITest01Service");
formOp.setServiceInterfaceProject(getSharedJavaProject());
formOp.setServiceInterfacePackage("sample.shared.test.output");
executeBuildAssertNoCompileErrors(formOp);
IType form = formOp.getCreatedType();
SdkAssert.assertFieldExist(form, "m_testId");
SdkAssert.assertMethodExist(form, "getTestId");
SdkAssert.assertMethodExist(form, "setTestId");
SdkAssert.assertExist(form);
IType mainBox = formOp.getCreatedMainBox();
SdkAssert.assertExist(mainBox);
SdkAssert.assertTypeExists(mainBox, "OkButton");
SdkAssert.assertTypeExists(mainBox, "CancelButton");
SdkAssert.assertExist(formOp.getCreatedCreatePermission());
SdkAssert.assertExist(formOp.getCreatedReadPermission());
SdkAssert.assertExist(formOp.getCreatedUpdatePermission());
SdkAssert.assertExist(formOp.getCreatedFormData());
SdkAssert.assertExist(formOp.getCreatedService());
SdkAssert.assertMethodExist(formOp.getCreatedService(), "prepareCreate");
SdkAssert.assertMethodExist(formOp.getCreatedService(), "create");
SdkAssert.assertMethodExist(formOp.getCreatedService(), "load");
SdkAssert.assertMethodExist(formOp.getCreatedService(), "store");
SdkAssert.assertExist(formOp.getCreatedServiceInterface());
SdkAssert.assertMethodExist(formOp.getCreatedServiceInterface(), "prepareCreate");
SdkAssert.assertMethodExist(formOp.getCreatedServiceInterface(), "create");
SdkAssert.assertMethodExist(formOp.getCreatedServiceInterface(), "load");
SdkAssert.assertMethodExist(formOp.getCreatedServiceInterface(), "store");
IType newHandler = SdkAssert.assertTypeExists(form, "NewHandler");
SdkAssert.assertMethodExist(newHandler, "execLoad");
SdkAssert.assertMethodExist(newHandler, "execStore");
IType modifyHandler = SdkAssert.assertTypeExists(form, "ModifyHandler");
SdkAssert.assertMethodExist(modifyHandler, "execLoad");
SdkAssert.assertMethodExist(modifyHandler, "execStore");
// service registration
SdkAssert.assertServiceProxyRegistered(getClientProject(), formOp.getCreatedServiceInterface());
SdkAssert.assertServiceRegistered(getServerProject(), formOp.getCreatedService());
PluginModelHelper h = new PluginModelHelper(getClientProject());
SdkAssert.assertTrue(h.Manifest.existsExportPackage(packageName));
}
}