| /******************************************************************************* |
| * 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)); |
| } |
| } |