| package org.eclipse.jst.j2ee.flexible.project.apitests.artifactedit; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.NullProgressMonitor; |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.jst.j2ee.common.CommonFactory; |
| import org.eclipse.jst.j2ee.common.ParamValue; |
| import org.eclipse.jst.j2ee.internal.web.deployables.J2EEFlexProjWebDeployable; |
| import org.eclipse.jst.j2ee.internal.web.deployables.WebDeployableFactory; |
| import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit; |
| import org.eclipse.jst.j2ee.webapplication.Filter; |
| import org.eclipse.jst.j2ee.webapplication.WebApp; |
| import org.eclipse.jst.j2ee.webapplication.WebapplicationFactory; |
| import org.eclipse.wst.common.componentcore.ComponentCore; |
| import org.eclipse.wst.common.componentcore.resources.ComponentHandle; |
| import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; |
| import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelEvent; |
| import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelListener; |
| import org.eclipse.wst.server.core.model.IModuleFolder; |
| import org.eclipse.wst.server.core.model.IModuleResource; |
| |
| public class WebArtifactEditFVTest extends TestCase { |
| |
| private IProject webProject; |
| private String webModuleName; |
| // private String serverContextData = TestWorkspace.WEB_SERVER_CONTEXT_ROOT + "Test"; //$NON-NLS-1$ |
| |
| public WebArtifactEditFVTest() { |
| super(); |
| if (TestWorkspace.init()) { |
| webProject = TestWorkspace.getTargetProject(TestWorkspace.WEB_PROJECT_NAME); |
| webModuleName = TestWorkspace.WEB_MODULE_NAME; |
| } else { |
| fail(); |
| |
| } |
| } |
| |
| public void testCreationDisposeFunction() { |
| WebArtifactEdit edit = null; |
| try { |
| ComponentHandle handle = ComponentHandle.create(webProject,webModuleName); |
| edit = WebArtifactEdit.getWebArtifactEditForWrite(handle); |
| edit.addListener(new EditModelListener() { |
| public void editModelChanged(EditModelEvent anEvent) { |
| pass(); |
| } |
| }); |
| WebApp client = edit.getWebApp(); |
| updateClient(client); |
| edit.save(new NullProgressMonitor()); |
| } finally { |
| if (edit != null) { |
| edit.dispose(); |
| } |
| } |
| } |
| |
| public void testDeployableResourceGather() { |
| IVirtualComponent webComp = ComponentCore.createComponent(webProject,webModuleName); |
| J2EEFlexProjWebDeployable deployable = new J2EEFlexProjWebDeployable(webProject, WebDeployableFactory.ID, webComp); |
| try { |
| IModuleResource[] resources = deployable.members(); |
| assertTrue(resources.length>1); |
| int numOfModuleResourceFolders = 0; |
| for (int i=0; i<resources.length; i++) { |
| if (resources[i] instanceof IModuleFolder) |
| numOfModuleResourceFolders++; |
| } |
| assertTrue(numOfModuleResourceFolders==2); |
| } catch (Exception e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| private void updateClient(WebApp client) { |
| client.setDescription(TestWorkspace.FVT_DESCRIPTION); |
| client.setDisplayName(TestWorkspace.FVT_DISPLAY_NAME); |
| client.setLargeIcon(TestWorkspace.FVT_LARGE_ICON); |
| } |
| |
| private void pass() { |
| assertTrue(true); |
| } |
| |
| public void testPersistenceFunction() { |
| WebArtifactEdit edit = null; |
| try { |
| ComponentHandle handle = ComponentHandle.create(webProject,webModuleName); |
| edit = WebArtifactEdit.getWebArtifactEditForWrite(handle); |
| WebApp web = edit.getWebApp(); |
| |
| |
| Filter filter = WebapplicationFactory.eINSTANCE.createFilter(); |
| filter.setName("WoohooFilter"); //$NON-NLS-1$ |
| filter.setFilterClassName("wtp.test.WhooHoo"); //$NON-NLS-1$ |
| |
| ParamValue value = CommonFactory.eINSTANCE.createParamValue(); |
| value.setName("Param1"); //$NON-NLS-1$ |
| value.setValue("Value1"); //$NON-NLS-1$ |
| List initParams = new ArrayList(); |
| initParams.add(value); |
| |
| if (initParams != null) { |
| filter.getInitParamValues().addAll(initParams); |
| } |
| |
| EList filters = web.getFilters(); |
| |
| filters.add(filter); |
| edit.saveIfNecessary(null); |
| |
| pass(web); |
| } finally { |
| if (edit != null) { |
| edit.dispose(); |
| } |
| } |
| } |
| |
| private static void pass(WebApp web) { |
| boolean pass = web.getDescription().equals(TestWorkspace.FVT_DESCRIPTION) && web.getDisplayName().equals(TestWorkspace.FVT_DISPLAY_NAME) && web.getLargeIcon().equals(TestWorkspace.FVT_LARGE_ICON); |
| assertTrue(pass); |
| } |
| |
| // private void validateResource() { |
| // WebArtifactEdit edit = null; |
| // try { |
| // ComponentHandle handle = ComponentHandle.create(webProject,webModuleName); |
| // edit = WebArtifactEdit.getWebArtifactEditForWrite(handle); |
| //// EList resourceList = wbComponent.getResources(); |
| //// for (Iterator iter = resourceList.iterator(); iter.hasNext();) { |
| //// } |
| // } finally { |
| // if (edit != null) { |
| // edit.dispose(); |
| // } |
| // } |
| // } |
| |
| // private ComponentResource createResourceComponent() { |
| // ComponentResource resourceComponent = ComponentcoreFactory.eINSTANCE.createComponentResource(); |
| // File testFile = TestWorkspace.ARTIFACT_EDIT_FVT_RESOURCE_PATH.toFile(); |
| // if (testFile.exists()) { |
| // resourceComponent.setRuntimePath(TestWorkspace.ARTIFACT_EDIT_FVT_RESOURCE_PATH); |
| // resourceComponent.setSourcePath(TestWorkspace.ARTIFACT_EDIT_FVT_RESOURCE_PATH); |
| // } else { |
| // fail("Missing: TestWorkspace.ARTIFACT_EDIT_FVT_RESOURCE_PATH"); //$NON-NLS-1$ |
| // } |
| // return resourceComponent; |
| // } |
| |
| } |