Author: dennyxu
Date: 2008-06-19 05:29:01 -0400 (Thu, 19 Jun 2008)
New Revision: 8847
Modified:
trunk/ws/tests/org.jboss.tools.ws.core.test/META-INF/MANIFEST.MF
trunk/ws/tests/org.jboss.tools.ws.core.test/src/org/jboss/tools/ws/core/test/command/AbstractJBossWSCommandTest.java
Log:
JBIDE-2323: add unit test for commands
Modified: trunk/ws/tests/org.jboss.tools.ws.core.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/ws/tests/org.jboss.tools.ws.core.test/META-INF/MANIFEST.MF 2008-06-19 08:12:32
UTC (rev 8846)
+++ trunk/ws/tests/org.jboss.tools.ws.core.test/META-INF/MANIFEST.MF 2008-06-19 09:29:01
UTC (rev 8847)
@@ -17,5 +17,11 @@
org.jboss.tools.ws.creation.core,
org.eclipse.wst.command.env.ui,
org.eclipse.wst.ws,
- org.jboss.tools.ws.creation.ui
+ org.jboss.tools.ws.creation.ui,
+ org.eclipse.jst.j2ee,
+ org.eclipse.jst.j2ee.core,
+ org.eclipse.emf.common,
+ org.eclipse.jem,
+ org.eclipse.emf.ecore,
+ org.eclipse.wst.server.core
Eclipse-LazyStart: true
Modified:
trunk/ws/tests/org.jboss.tools.ws.core.test/src/org/jboss/tools/ws/core/test/command/AbstractJBossWSCommandTest.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.core.test/src/org/jboss/tools/ws/core/test/command/AbstractJBossWSCommandTest.java 2008-06-19
08:12:32 UTC (rev 8846)
+++
trunk/ws/tests/org.jboss.tools.ws.core.test/src/org/jboss/tools/ws/core/test/command/AbstractJBossWSCommandTest.java 2008-06-19
09:29:01 UTC (rev 8847)
@@ -18,22 +18,28 @@
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.j2ee.model.IModelProvider;
+import org.eclipse.jst.j2ee.model.ModelProviderManager;
+import org.eclipse.jst.j2ee.webapplication.ServletType;
+import org.eclipse.jst.javaee.web.Servlet;
+import org.eclipse.jst.javaee.web.ServletMapping;
+import org.eclipse.jst.javaee.web.WebApp;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.ws.internal.common.WSDLUtility;
+import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
import org.eclipse.wst.ws.internal.wsrt.IWebService;
import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
@@ -44,11 +50,15 @@
import org.jboss.tools.ws.core.classpath.JbossWSRuntimeManager;
import org.jboss.tools.ws.core.facet.delegate.IJBossWSFacetDataModelProperties;
import org.jboss.tools.ws.core.facet.delegate.JBossWSFacetInstallDataModelProvider;
+import org.jboss.tools.ws.creation.core.commands.ImplementationClassCreationCommand;
import org.jboss.tools.ws.creation.core.commands.InitialCommand;
+import org.jboss.tools.ws.creation.core.commands.MergeWebXMLCommand;
import org.jboss.tools.ws.creation.core.commands.WSDL2JavaCommand;
import org.jboss.tools.ws.creation.core.data.ServiceModel;
import org.jboss.tools.ws.creation.ui.wsrt.JBossWebService;
+import com.sun.jmx.remote.internal.ServerCommunicatorAdmin;
+
public class AbstractJBossWSCommandTest extends TestCase {
protected static final IWorkspace ws = ResourcesPlugin.getWorkspace();
protected static final IWorkbench wb = PlatformUI.getWorkbench();
@@ -71,7 +81,7 @@
static String wsdlFileName = "hello_world.wsdl";
static String BUNDLE = "org.jboss.tools.ws.core.test";
- IProject project;
+ IFacetedProject fproject;
TestProjectProvider provider;
static {
@@ -91,6 +101,12 @@
protected void setUp() throws Exception {
super.setUp();
JbossWSRuntimeManager.getInstance().addRuntime(RuntimeName,
getJBossWSHomeFolder().toString(), "", true);
+
+ //create jbossws web project
+ fproject = createJBossWSProject("JBossWSTestProject", isServerSupplied());
+ IFile wsdlFile = fproject.getProject().getFile(wsdlFileName);
+
+ assertTrue(wsdlFile.exists());
try { EditorTestHelper.joinBackgroundActivities(); }
catch (Exception e) { JUnitUtils.fail(e.getMessage(), e); }
EditorTestHelper.runEventQueue(3000);
@@ -129,42 +145,123 @@
super.tearDown();
}
- public void testCommands() throws CoreException, ExecutionException{
- IFacetedProject fproject = createJBossWSProject("JBossWSTestProject",
false);
+
+ public void testInitialCommand() throws CoreException, ExecutionException{
+
IFile wsdlFile = fproject.getProject().getFile(wsdlFileName);
-
- assertTrue(wsdlFile.exists());
-
ServiceModel model = new ServiceModel();
model.setWebProjectName(fproject.getProject().getName());
- model.setWsdlURI(wsdlFile.getLocation().toOSString());
+ //model.setWsdlURI(wsdlFile.getLocation().toOSString());
WebServiceInfo info = new WebServiceInfo();
- info.setWsdlURL(wsdlFile.getFullPath().toOSString());
+ info.setWsdlURL(wsdlFile.getLocation().toOSString());
IWebService ws = new JBossWebService(info);
//test initial command
- /*InitialCommand cmdInitial = new InitialCommand(model, ws,
WebServiceScenario.TOPDOWN);
+ InitialCommand cmdInitial = new InitialCommand(model, ws, WebServiceScenario.TOPDOWN);
IStatus status = cmdInitial.execute(null, null);
assertTrue(status.getMessage(), status.isOK());
assertTrue(model.getServiceNames().contains("SOAPService"));
- assertEquals(wsdlFile.getFullPath().toOSString(), model.getWsdlURI());
+ assertEquals(wsdlFile.getLocation().toOSString(), model.getWsdlURI());
assertTrue(model.getPortTypes().contains("Greeter"));
assertEquals("org.apache.hello_world_soap_http", model.getCustomPackage());
+ }
+
+
+ public void testCodeGenerationCommand() throws ExecutionException{
+
+ ServiceModel model = createServiceModel();
+ IProject project = fproject.getProject();
//test wsdl2Javacommand
-
WSDL2JavaCommand cmdW2j = new WSDL2JavaCommand(model);
- status = cmdW2j.execute(null, null);
- assertTrue("failed to execute WSDL2JavaCommand,namely failed to generate web
service code", status.isOK());*/
+ IStatus status = cmdW2j.execute(null, null);
+ assertTrue(status.getMessage(), status.isOK());
+ assertTrue(project.getFile("src/org/apache/hello_world_soap_http/Greeter.java").exists());
+ // test ImplementationClassCreationCommand
+ model.setGenerateImplementatoin(false);
+ ImplementationClassCreationCommand cmdImpl = new
ImplementationClassCreationCommand(model);
+ status = cmdImpl.execute(null, null);
+ assertTrue(status.getMessage(), status.isOK());
+ assertFalse(project.getFile("src/org/apache/hello_world_soap_http/GreeterImpl.java").exists());
+ model.setGenerateImplementatoin(true);
+ cmdImpl = new ImplementationClassCreationCommand(model);
+ status = cmdImpl.execute(null, null);
+ assertTrue(status.getMessage(), status.isOK());
+ assertTrue("failed to generate implemenatation class",
project.getFile("src/org/apache/hello_world_soap_http/GreeterImpl.java").exists());
+
}
+ public void testMergeWebXMLCommand() throws ExecutionException{
+ ServiceModel model = createServiceModel();
+ model.setGenerateImplementatoin(true);
+ model.setUpdateWebxml(true);
+ model.setWebProjectName(fproject.getProject().getName());
+ model.addServiceClasses("org.apache.hello_world_soap_http.GreeterImpl");
+ MergeWebXMLCommand cmdweb = new MergeWebXMLCommand(model);
+ IStatus status = cmdweb.execute(null, null);
+ assertTrue(status.getMessage(), status.isOK());
+
+ IProject project = fproject.getProject();
+ IFile webxml = project.getFile("WebContent/WEB-INF/web.xml");
+ assertTrue(webxml.exists());
+ IModelProvider provider = ModelProviderManager
+ .getModelProvider(project);
+ Object object = provider.getModelObject();
+ if (object instanceof WebApp) {
+ WebApp webApp = (WebApp) object;
+ assertTrue("failed to update web.xml ", webApp.getServlets().size() >
0);
+ Servlet servlet = (Servlet)webApp.getServlets().get(0);
+ assertEquals("the servlet with the name 'Greeger' was not created",
servlet.getServletName(), "Greeter");
+ assertTrue("the servlet display names should contain 'Greeter'",
servlet.getDisplayNames().contains("Greeter"));
+ assertEquals("org.apache.hello_world_soap_http.GreeterImpl",
servlet.getServletClass());
+
+ ServletMapping mapping = (ServletMapping)webApp.getServletMappings().get(0);
+ assertTrue("url patterns should contain '/Greeter'",
mapping.getUrlPatterns().contains("/Greeter"));
+ assertEquals("Greeter", mapping.getServletName());
+ }else if(object instanceof org.eclipse.jst.j2ee.webapplication.WebApp){
+ org.eclipse.jst.j2ee.webapplication.WebApp webApp =
(org.eclipse.jst.j2ee.webapplication.WebApp) object;
+ assertTrue("failed to update web.xml ", webApp.getServlets().size() >
0);
+ org.eclipse.jst.j2ee.webapplication.Servlet servlet =
(org.eclipse.jst.j2ee.webapplication.Servlet)webApp.getServlets().get(0);
+ assertEquals("a servlet with the name 'Greeger' should be created",
servlet.getServletName(), "Greeter");
+ assertEquals("servlet display name:","Greeter",
servlet.getDisplayName());
+ if(servlet.getWebType() instanceof ServletType){
+ ServletType webtype = (ServletType)servlet.getWebType();
+ assertEquals("org.apache.hello_world_soap_http.GreeterImpl",
webtype.getClassName());
+ }
+
+ org.eclipse.jst.j2ee.webapplication.ServletMapping mapping =
(org.eclipse.jst.j2ee.webapplication.ServletMapping)webApp.getServletMappings().get(0);
+ assertEquals("url pattern: ","/Greeter",
mapping.getUrlPattern());
+ assertEquals("Greeter", mapping.getServlet().getServletName());
+ }
+
+
+ }
+
+ protected ServiceModel createServiceModel(){
+ ServiceModel model = new ServiceModel();
+ model.setWebProjectName(fproject.getProject().getName());
+ IFile wsdlFile = fproject.getProject().getFile(wsdlFileName);
+ model.setWsdlURI(wsdlFile.getLocation().toOSString());
+ model.addServiceName("SOAPService");
+ model.addPortTypes("Greeter");
+ model.setCustomPackage("org.apache.hello_world_soap_http");
+
+ return model;
+
+ }
+
+ protected boolean isServerSupplied(){
+ return true;
+ }
+
+
protected IFacetedProject createJBossWSProject(String baseProjectName, boolean
isServerSupplied) throws CoreException {
IProject project = createProject("JBossWSTestProject");
final IFacetedProject fproj = ProjectFacetsManager.create(project);
@@ -211,15 +308,18 @@
protected File getJBossWSHomeFolder() {
- return new File(System.getProperty(JBOSSWS_HOME, JBOSSWS_HOME_DEFAULT));
+
+ String jbosshome = System.getProperty("jbosstools.test.jboss.home.4.2",
JBOSSWS_HOME_DEFAULT);
+ File runtimelocation = new File(jbosshome);
+ assertTrue("Please set Jboss EAP Home in system property:" + JBOSSWS_HOME,
runtimelocation.exists());
+
+ String cmdFileLocation = jbosshome + File.separator + "bin" + File.separator
+ "wsconsume.sh";
+ assertTrue(jbosshome + " is not a valid jboss EAP home", new
File(cmdFileLocation).exists());
+ return runtimelocation;
}
- protected String getPackagePath(String packageName) {
- return (packageName == null ? "" : packageName.replace('.',
'/'));
- }
-
-
+
}