blob: d573bc8ab1c7781db9e17d25a767538f104afe41 [file] [log] [blame]
package org.eclipse.jst.ws.tests.axis.tomcat.v50.perfmsr;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
import org.eclipse.jst.ws.internal.common.EnvironmentUtils;
import org.eclipse.jst.ws.internal.common.J2EEUtils;
import org.eclipse.jst.ws.internal.common.ResourceUtils;
import org.eclipse.jst.ws.tests.axis.tomcat.v50.WSWizardTomcat50Test;
import org.eclipse.jst.ws.tests.util.JUnitUtils;
import org.eclipse.jst.ws.tests.util.ScenarioConstants;
import org.eclipse.test.performance.Performance;
import org.eclipse.test.performance.PerformanceMeter;
import org.eclipse.wst.command.internal.provisional.env.core.common.SimpleStatus;
import org.eclipse.wst.command.internal.provisional.env.core.common.Status;
/**
* Top down performance scenario with Axis and Tomcat v5.0
*/
public class PerfmsrTDJavaAxisTC50 extends WSWizardTomcat50Test {
private final String WS_RUNTIMEID_AXIS = "org.eclipse.jst.ws.runtime.axis11";
private final String WEB_MODULE_NAME = "TestTDWebModule";
private final String PROJECT_NAME = "TestTDProject";
private IFile sourceFile_;
/**
* Sets up the input data;
* - create project(s),
* - copy resources to workspace
*/
protected void installInputData() throws Exception {
// Create an associated Web project (TestWeb) targetted to Tomcat 5.0
Status s = JUnitUtils.createWebModule(PROJECT_NAME, WEB_MODULE_NAME, SERVERTYPEID_TC50, String.valueOf(J2EEVersionConstants.J2EE_1_4_ID), env_);
if (s.getSeverity() != Status.OK)
throw new Exception(s.getThrowable());
IProject webProject = ProjectUtilities.getProject(PROJECT_NAME);
assertTrue(webProject.exists());
// JUnitUtils.startServer(server_, env_);
IFolder destFolder = (IFolder)J2EEUtils.getWebContentContainer(webProject, WEB_MODULE_NAME);
JUnitUtils.copyTestData("TDJava",destFolder,env_);
sourceFile_ = destFolder.getFile(new Path("Echo.wsdl"));
assertTrue(sourceFile_.exists());
}
/**
* Set the persistent server runtime context preferences
*/
protected void initJ2EEWSRuntimeServerDefaults() throws Exception {
// Set default preferences for J2EE 1.4, Axis and Tomcat v5.0 server
JUnitUtils.setJ2EEWSRuntimeServer(String.valueOf(J2EEVersionConstants.J2EE_1_4_ID), WS_RUNTIMEID_AXIS, SERVERTYPEID_TC50);
}
/**
* Set the initial selection
*/
protected void initInitialSelection() throws Exception {
initialSelection_ = new StructuredSelection(sourceFile_);
}
/**
* Launches the pop-up command to initiate the scenario
* @throws Exception
*/
public void testTDJavaAxisTC50() throws Exception {
Status status = new SimpleStatus("");
Performance perf= Performance.getDefault();
PerformanceMeter performanceMeter= perf.createPerformanceMeter(perf.getDefaultScenarioId(this));
try {
performanceMeter.start();
status = JUnitUtils.launchCreationWizard(ScenarioConstants.WIZARDID_TOP_DOWN,ScenarioConstants.OBJECT_CLASS_ID_IFILE,initialSelection_);
performanceMeter.stop();
performanceMeter.commit();
perf.assertPerformance(performanceMeter);
}
finally {
performanceMeter.dispose();
}
if (status.getSeverity() == Status.OK)
verifyOutput();
else
throw new Exception(status.getThrowable());
}
/**
* Verify the scenario completed successfully
* @throws Exception
*/
private final void verifyOutput() throws Exception
{
IProject webProject = ProjectUtilities.getProject(PROJECT_NAME);
IFolder webContentFolder = (IFolder)J2EEUtils.getWebContentContainer(webProject, WEB_MODULE_NAME);
IPath webInfPath = J2EEUtils.getWebInfPath(webProject, WEB_MODULE_NAME);
IFolder webInfFolder = (IFolder)ResourceUtils.findResource(webInfPath);
IFolder wsdlFolder = webContentFolder.getFolder("wsdl");
assertTrue(wsdlFolder.exists());
assertTrue(wsdlFolder.members().length > 0);
//TODO Verify that wsdd contains this Web service
//TODO Verify that the service can be invoked by a client
}
/**
* Clear workspace if required
*/
protected void deleteInputData() throws Exception {
// Delete the Web project.
IProject webProject = ProjectUtilities.getProject(PROJECT_NAME);
webProject.delete(true,true,EnvironmentUtils.getIProgressMonitor(env_));
}
}