Author: rob.stryker(a)jboss.com
Date: 2010-05-21 07:19:52 -0400 (Fri, 21 May 2010)
New Revision: 22234
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/defects/DefectTest.java
Log:
JBDS-1207 test for trunk
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/defects/DefectTest.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/defects/DefectTest.java 2010-05-21
08:54:00 UTC (rev 22233)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/defects/DefectTest.java 2010-05-21
11:19:52 UTC (rev 22234)
@@ -1,7 +1,12 @@
package org.jboss.ide.eclipse.as.test.defects;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
import junit.framework.TestCase;
+import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
@@ -12,18 +17,30 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.JavaCore;
+import
org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import
org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.core.ServerUtil;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
+import org.eclipse.wst.server.core.model.IModuleResource;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
import org.jboss.ide.eclipse.as.core.server.internal.DeployableServer;
import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
import org.jboss.ide.eclipse.as.test.util.ServerRuntimeUtils;
import org.jboss.ide.eclipse.as.test.util.wtp.CreateProjectOperationsUtility;
import org.jboss.ide.eclipse.as.test.util.wtp.JavaEEFacetConstants;
import org.jboss.ide.eclipse.as.test.util.wtp.OperationTestCase;
+import org.jboss.ide.eclipse.as.test.util.wtp.ProjectCreationUtil;
public class DefectTest extends TestCase {
public void testJBIDE6184_Odd_Republish_Error() throws Exception {
@@ -108,8 +125,80 @@
assertTrue(earPath.append("d2.war").append("META-INF").toFile().exists());
assertTrue(earPath.append("d2.war").append("META-INF").append("MANIFEST.MF").toFile().exists());
assertTrue(earPath.append("d2.war").append("WEB-INF").append("web.xml").toFile().exists());
+ }
+
+ //wtp305306_patchBuildTest
+ public void testEAR50_WithVariableReference() throws Exception {
+ IDataModel dm = ProjectCreationUtil.getEARDataModel("pEAR",
"ourContent", null, null,
+ JavaEEFacetConstants.EAR_5, false);
+ OperationTestCase.runAndVerify(dm);
+ IProject p = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject("pEAR");
+ if (p != null && p.exists()) {
+ try {
+ IVirtualComponent vc = ComponentCore.createComponent(p);
+ addArchiveComponent(vc);
+ // now verify
+ IModule module = ServerUtil.getModule(p);
+ assertNotNull(module);
+ ModuleDelegate md = (ModuleDelegate) module.loadAdapter(
+ ModuleDelegate.class, new NullProgressMonitor());
+ IModuleResource[] resources = md.members();
+
+ // Currently intended to fail,
+ boolean shouldFail = true;
+ if( shouldFail) {
+ assertEquals(0, resources.length);
+ } else {
+ assertEquals(1, resources.length);
+ assertEquals(1, ((IModuleFolder) resources[0]).members().length);
+ assertTrue(((IModuleFolder) resources[0]).members()[0] instanceof IModuleFile);
+ IModuleFile junitjar = (IModuleFile) ((IModuleFolder) resources[0])
+ .members()[0];
+ assertEquals("junit.jar", junitjar.getName());
+ }
+ } catch (CoreException ce) {
+ ce.printStackTrace();
+ }
+ }
+ }
-
+ public void addArchiveComponent(IVirtualComponent component)
+ throws CoreException {
+
+ IPath path = new Path("JUNIT_HOME/junit.jar"); //$NON-NLS-1$
+ IPath resolvedPath = JavaCore.getResolvedVariablePath(path);
+ java.io.File file = new java.io.File(resolvedPath.toOSString());
+ if (file.isFile() && file.exists()) {
+ String type = VirtualArchiveComponent.VARARCHIVETYPE
+ + IPath.SEPARATOR;
+ IVirtualComponent archive = ComponentCore.createArchiveComponent(
+ component.getProject(), type + path.toString());
+ IDataModelProvider provider = new
AddComponentToEnterpriseApplicationDataModelProvider();
+ IDataModel dm = DataModelFactory.createDataModel(provider);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT,
+ component);
+ dm.setProperty( ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST,
+ Arrays.asList(archive));
+ Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent,
String>();
+ uriMap.put(archive, "junit.jar");
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP,
+ uriMap);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,
+ "/lib");
+ IStatus stat = dm.validateProperty(
+ ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+ if (!stat.isOK())
+ throw new CoreException(stat);
+ try {
+ dm.getDefaultOperation().execute(new NullProgressMonitor(),
+ null);
+ } catch (ExecutionException e) {
+ throw new CoreException(new Status(IStatus.ERROR, "test", e
+ .getMessage()));
+ }
+
+ }
}
protected IModule[] getModule(IProject p) {