blob: e6d8000be8e2e165d99b082ed2f61e7280de83b9 [file] [log] [blame]
/*
* Created on May 13, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.eclipse.wtp.j2ee.headless.tests.web.operations;
import junit.framework.Test;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.j2ee.internal.project.J2EENature;
import org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentCreationDataModelProvider;
import org.eclipse.jst.j2ee.internal.web.operations.J2EEWebNatureRuntime;
import org.eclipse.jst.j2ee.internal.web.operations.NewServletClassDataModel;
import org.eclipse.jst.j2ee.web.datamodel.properties.IWebComponentCreationDataModelProperties;
import org.eclipse.jst.j2ee.webapplication.Servlet;
import org.eclipse.jst.j2ee.webapplication.WebApp;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.tests.OperationTestCase;
import org.eclipse.wst.common.tests.ProjectUtility;
import org.eclipse.wst.common.tests.SimpleTestSuite;
/**
* @author jialin
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class AddServletOperationTest extends OperationTestCase {
public static String WEB_PROJECT_NAME = "WebProject";
public static String SERVLET_NAME = "Servlet1";
private IDataModel webComponentDataModel;
private NewServletClassDataModel servletDataModel;
/**
* @param name
*/
public AddServletOperationTest(String name) {
super(name);
// TODO Auto-generated constructor stub
}
/**
*
*/
public AddServletOperationTest() {
// TODO Auto-generated constructor stub
}
public static Test suite() {
return new SimpleTestSuite(AddServletOperationTest.class);
}
public void testAddServlet() throws Exception {
createWebProject(WEB_PROJECT_NAME);
WebApp webApp = getWebApp();
addServlet(WEB_PROJECT_NAME, SERVLET_NAME);
if (webApp != null){
Servlet servlet = webApp.getServletNamed(SERVLET_NAME);
//TODO need to get the
//addInitParams(servlet,WEB_PROJECT_NAME);
}
}
public void createWebProject(String projectName) throws Exception {
webComponentDataModel = DataModelFactory.createDataModel(new WebComponentCreationDataModelProvider());
webComponentDataModel.setProperty(IWebComponentCreationDataModelProperties.PROJECT_NAME, projectName);
runAndVerify(webComponentDataModel);
}
/**
* @param projectName
* @param servletName
*/
public void addServlet(String projectName, String servletName) throws Exception {
servletDataModel = new NewServletClassDataModel();
servletDataModel.setProperty(NewServletClassDataModel.PROJECT_NAME, projectName);
servletDataModel.setProperty(NewServletClassDataModel.DISPLAY_NAME, servletName);
NewServletClassDataModel nestedModel = new NewServletClassDataModel();
servletDataModel.addNestedModel("NewServletClassDataModel", nestedModel); //$NON-NLS-1$
nestedModel.setProperty(NewServletClassDataModel.PROJECT_NAME, projectName);
nestedModel.setProperty(NewServletClassDataModel.CLASS_NAME, servletName);
nestedModel.setProperty(NewServletClassDataModel.SUPERCLASS, NewServletClassDataModel.SUPERCLASS);
nestedModel.setProperty(NewServletClassDataModel.INTERFACES,
servletDataModel.getServletInterfaces());
runAndVerify(servletDataModel);
}
// protected void addInitParams(Servlet servlet,String projectName) throws Exception {
// initParamDataModel = new AddServletInitParamDataModel();
// initParamDataModel.setProperty(AddServletInitParamDataModel.SERVLET, servlet);
// initParamDataModel.setProperty(AddServletInitParamDataModel.PROJECT_NAME,projectName);
// for (int i = 0; i < 10; i++) {
// String paramName = "param" + String.valueOf(i);
// String paramValue = "value" + String.valueOf(i);
// initParamDataModel.setProperty(AddServletInitParamDataModel.PARAMETER_NAME, paramName);
// initParamDataModel.setProperty(AddServletInitParamDataModel.PARAMETER_VALUE, paramValue);
// }
// runAndVerify(initParamDataModel);
// }
protected WebApp getWebApp() {
IProject webProject = null;
if (servletDataModel != null){
webProject = servletDataModel.getTargetProject();
}
else{
webProject = ProjectUtility.getProject(WEB_PROJECT_NAME);
}
J2EEWebNatureRuntime nature = (J2EEWebNatureRuntime)J2EENature.getRegisteredRuntime(webProject);
if (nature != null)
return nature.getWebApp();
return null;
}
}