Author: jjankovi
Date: 2011-12-16 03:15:54 -0500 (Fri, 16 Dec 2011)
New Revision: 37391
Added:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleRESTWebServiceTest.java
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleSoapWebServiceTest.java
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleWSBase.java
Removed:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/jbt/SampleWSTest.java
Modified:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/WSAllBotTests.java
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/uiutils/wizards/SampleWSWizard.java
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/wtp/TopDownWSTest.java
Log:
Decomposition of SampleWSTest
Modified:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/WSAllBotTests.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/WSAllBotTests.java 2011-12-16
07:16:43 UTC (rev 37390)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/WSAllBotTests.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -13,8 +13,9 @@
import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
import org.jboss.tools.ws.ui.bot.test.eap.EAPFromJavaTest;
import org.jboss.tools.ws.ui.bot.test.eap.EAPFromWSDLTest;
-import org.jboss.tools.ws.ui.bot.test.jbt.SampleWSTest;
import org.jboss.tools.ws.ui.bot.test.jbt.WsTesterTest;
+import org.jboss.tools.ws.ui.bot.test.sample.SampleRESTWebServiceTest;
+import org.jboss.tools.ws.ui.bot.test.sample.SampleSoapWebServiceTest;
import org.jboss.tools.ws.ui.bot.test.wtp.BottomUpWSTest;
import org.jboss.tools.ws.ui.bot.test.wtp.TopDownWSTest;
import org.jboss.tools.ws.ui.bot.test.wtp.WsClientTest;
@@ -42,7 +43,8 @@
*/
@RunWith(RequirementAwareSuite.class)
@SuiteClasses({
- SampleWSTest.class,
+ SampleSoapWebServiceTest.class,
+ SampleRESTWebServiceTest.class,
BottomUpWSTest.class,
TopDownWSTest.class,
WsClientTest.class,
@@ -51,4 +53,5 @@
EAPFromWSDLTest.class
})
public class WSAllBotTests {
+
}
Deleted:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/jbt/SampleWSTest.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/jbt/SampleWSTest.java 2011-12-16
07:16:43 UTC (rev 37390)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/jbt/SampleWSTest.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.ws.ui.bot.test.jbt;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.namespace.QName;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.config.Annotations.Require;
-import org.jboss.tools.ui.bot.ext.config.Annotations.Server;
-import org.jboss.tools.ws.ui.bot.test.WSAllBotTests;
-import org.jboss.tools.ws.ui.bot.test.uiutils.actions.NewSampleWSWizardAction;
-import org.jboss.tools.ws.ui.bot.test.uiutils.actions.TreeItemAction;
-import org.jboss.tools.ws.ui.bot.test.uiutils.wizards.SampleWSWizard;
-import org.jboss.tools.ws.ui.bot.test.uiutils.wizards.SampleWSWizard.Type;
-import org.jboss.tools.ws.ui.bot.test.utils.WSClient;
-import org.jboss.tools.ws.ui.bot.test.wtp.WSTestBase;
-import org.junit.AfterClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite.SuiteClasses;
-
-@Require(server=@Server(),perspective="Java EE")
-(a)RunWith(RequirementAwareSuite.class)
-@SuiteClasses({ WSAllBotTests.class})
-public class SampleWSTest extends WSTestBase {
-
- private static final String SOAP_REQUEST = getSoapRequest("<ns1:sayHello
xmlns:ns1=\"http://{0}/\"><arg0>{1}</arg0></ns1:sayHello>");
- private static final String SERVER_URL = "localhost:8080";
- private static final Logger L = Logger.getLogger(SampleWSTest.class.getName());
-
- @AfterClass
- public static void clean() {
- servers.removeAllProjectsFromServer();
- projectExplorer.deleteAllProjects();
- }
-
- @Override
- protected String getWsProjectName() {
- return "SampleSOAPWS";
- }
-
- @Override
- protected String getWsPackage() {
- return null;
- }
-
- @Override
- protected String getWsName() {
- return null;
- }
-
- @Test
- public void testSampleSoapWS() {
- IFile dd = getDD(getWsProjectName());
- if (!dd.exists()) {
- createDD(getWsProjectName());
- }
- assertTrue(dd.exists());
- createSampleSOAPWS(getWsProjectName(), "HelloService",
"sample", "SampleService");
- checkSOAPService(getWsProjectName(), "HelloService",
"sample", "SampleService", "You");
-
- createSampleSOAPWS(getWsProjectName(), "GreetService",
"greeter", "Greeter");
- checkSOAPService(getWsProjectName(), "GreetService",
"greeter", "Greeter", "Tester");
- }
-
-
- @Test
- public void testSampleRestWS() {
- if ("JBOSS_AS".equals(configuredState.getServer().type)) {
- fail("This test requires RESTEasy jars in the server");
- }
- String project = "SampleRESTWS";
- createProject(project);
- IFile dd = getDD(project);
- if (!dd.exists()) {
- createDD(project);
- }
- assertTrue(dd.exists());
- createSampleRESTWS(project, "RESTSample", "rest.sample",
"Sample", "RESTApp");
- checkRESTService(project, "RESTSample", "rest.sample",
"Sample", "Hello World!", "RESTApp");
- }
-
-
-
- private int numberOfService(ArrayList<String> services, String serviceType) {
- int count = 0;
- for (String service: services) {
- if (service.contains(serviceType)) {
- count++;
- }
- }
- return count;
- }
-
- private void createDD(String project) {
- SWTBotTree tree = projectExplorer.bot().tree();
- SWTBotTreeItem ti = tree.expandNode(project);
- bot.sleep(1500);
- ti = ti.getNode("Deployment Descriptor: " + project);
- new TreeItemAction(ti, "Generate Deployment Descriptor Stub").run();
- bot.sleep(1500);
- util.waitForNonIgnoredJobs();
- bot.sleep(1500);
- }
-
- private void createSampleSOAPWS(String project, String name, String pkg, String cls)
{
- createSampleService(Type.SOAP, project, name, pkg, cls, null);
- }
-
- private void checkSOAPService(String project, String svcName, String svcPkg, String
svcClass, String msgContent) {
- checkService(Type.SOAP, project, svcName, svcPkg, svcClass, msgContent, null);
- }
-
- private void checkRESTService(String project, String svcName, String svcPkg, String
svcClass, String msgContent, String appCls) {
- checkService(Type.REST, project, svcName, svcPkg, svcClass, msgContent, appCls);
- checkRestSupport(project,svcName);
- }
-
- private void createSampleRESTWS(String project, String name, String pkg, String cls,
String appCls) {
- SWTBotEditor ed = createSampleService(Type.REST, project, name, pkg, cls, appCls);
- copyResourceToClass(ed,
SampleWSTest.class.getResourceAsStream("/resources/jbossws/Rest.java.ws"),false);
- }
-
-
- private SWTBotEditor createSampleService(Type type, String project, String name,
String pkg, String cls, String appCls) {
- SampleWSWizard w = new NewSampleWSWizardAction(type).run();
- w.setProjectName(project).setServiceName(name);
- w.setPackageName(pkg).setClassName(cls);
- if (type == Type.REST) {
- w.setApplicationClassName(appCls);
- }
- w.finish();
- util.waitForNonIgnoredJobs();
- return bot.editorByTitle(cls + ".java");
- }
-
- private void checkService(Type type, String project, String svcName, String svcPkg,
String svcClass, String msgContent, String appCls) {
- SWTBotEditor ed = bot.activeEditor();
- assertEquals(svcClass + ".java", ed.getTitle());
- String code = ed.toTextEditor().getText();
- assertContains("package " + svcPkg + ";", code);
- String dd = readFile(getDD(project));
- switch (type) {
- case REST:
- assertContains("@Path(\"/" + svcName +
"\")", code);
- assertContains("@GET()", code);
- assertContains("@Produces(\"text/plain\")", code);
-
assertContains("<servlet-name>Resteasy</servlet-name>", dd);
- assertContains("<param-value>" + svcPkg + "." +
appCls + "</param-value>", dd);
- break;
- case SOAP:
- assertContains("<servlet-name>" + svcName +
"</servlet-name>", dd);
- break;
- }
- runProject(project);
- switch (type) {
- case REST:
- try {
- URL u = new URL("http://" + SERVER_URL + "/" +
project + "/" + svcName);
- String s = readStream(u.openConnection().getInputStream());
- assertEquals(msgContent, s);
- } catch (MalformedURLException e) {
- L.log(Level.WARNING, e.getMessage(), e);
- } catch (IOException e) {
- L.log(Level.WARNING, e.getMessage(), e);
- }
- break;
- case SOAP:
- try {
- WSClient c = new WSClient(new URL("http://" + SERVER_URL +
"/" + project + "/" + svcName),
- new QName("http://" + svcPkg + "/",
svcClass + "Service"),
- new QName("http://" + svcPkg + "/",
svcClass + "Port"));
- assertContains("Hello " + msgContent + "!",
c.callService(MessageFormat.format(SOAP_REQUEST, svcPkg, msgContent)));
- } catch (MalformedURLException e) {
- L.log(Level.WARNING, e.getMessage(), e);
- }
- break;
- }
- }
-
- private void checkRestSupport(String project, String servName) {
- addRestSupport(project);
- testRestSupport(project, servName);
- }
-
- private void addRestSupport(String project) {
- SWTBotTree tree = projectExplorer.bot().tree();
- SWTBotTreeItem ti = tree.expandNode(project);
- new TreeItemAction(ti, "Configure","Add JAX-RS 1.1
support...").run();
- bot.sleep(Timing.time500MS());
- util.waitForNonIgnoredJobs();
- try {
- ti.getNode("RESTful Web Services");
- }catch (WidgetNotFoundException exc) {
- fail("REST support was not configured properly");
- }
- }
-
- private void testRestSupport(String project, String servName) {
- SWTBotTree tree = projectExplorer.bot().tree();
- SWTBotTreeItem ti = tree.expandNode(project,"RESTful Web Services");
- ArrayList<String> nodes = (ArrayList<String>)ti.getNodes();
-
-
- assertTrue("Should be 2 GET services instead of " +
- numberOfService(nodes,"GET"), numberOfService(nodes,"GET") ==
2);
- assertTrue("Should be 1 DELETE service instead of " +
- numberOfService(nodes,"DELETE"), numberOfService(nodes,"DELETE")
== 1);
- assertTrue("Should be 1 POST service instead of " +
- numberOfService(nodes,"POST"), numberOfService(nodes,"POST") ==
1);
- assertTrue("Should be 1 PUT service instead of " +
- numberOfService(nodes,"PUT"), numberOfService(nodes,"PUT") ==
1);
-
-
- assertTrue("Node's form should be {GET /RESTSample} instead of {" +
- nodes.get(0) + "}",nodes.get(0).equals("GET /" + servName));
- assertTrue("Node's form should be {DELETE /RESTSample/DeleteMethod} instead
of {" +
- nodes.get(1) + "}",nodes.get(1).equals("DELETE /" + servName +
"/DeleteMethod"));
- assertTrue("Node's form should be {POST /RESTSample/PostMethod} instead of
{" +
- nodes.get(2) + "}",nodes.get(2).equals("POST /" + servName +
"/PostMethod"));
- assertTrue("Node's form should be {PUT /RESTSample/PutMethod} instead of
{" +
- nodes.get(3) + "}",nodes.get(3).equals("PUT /" + servName +
"/PutMethod"));
- assertTrue("Node's form should be {GET /RESTSample/{name}} instead of
{" +
- nodes.get(4) + "}",nodes.get(4).equals("GET /" + servName +
"/{name}"));
-
- }
-
- private IProject getProject(String project) {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(project);
- }
-
- private IFile getDD(String project) {
- return getProject(project).getFile("WebContent/WEB-INF/web.xml");
- }
-}
Added:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleRESTWebServiceTest.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleRESTWebServiceTest.java
(rev 0)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleRESTWebServiceTest.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.ws.ui.bot.test.sample;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ws.ui.bot.test.uiutils.actions.TreeItemAction;
+import org.jboss.tools.ws.ui.bot.test.uiutils.wizards.SampleWSWizard.Type;
+import org.junit.Test;
+
+public class SampleRESTWebServiceTest extends SampleWSBase {
+
+ private final String REST_WS_NODE = "JAX-RS REST Web Services";
+ private final String REST_SUPPORT = "Add JAX-RS 1.1 support...";
+ private final String CONFIGURE_CONTEXT = "Configure";
+
+ @Override
+ protected String getWsProjectName() {
+ return "SampleRESTWS";
+ }
+
+ @Test
+ public void testSampleRestWS() {
+ if ("JBOSS_AS".equals(configuredState.getServer().type)) {
+ fail("This test requires RESTEasy jars in the server");
+ }
+ IFile dd = getDD(getWsProjectName());
+ if (!dd.exists()) {
+ createDD(getWsProjectName());
+ }
+ assertTrue(dd.exists());
+ createSampleRESTWS(getWsProjectName(), "RESTSample",
"rest.sample", "Sample", "RESTApp");
+ checkRESTService(getWsProjectName(), "RESTSample",
"rest.sample", "Sample", "Hello World!",
"RESTApp");
+ }
+
+ @Test
+ public void testSimpleRestWS() {
+
+ }
+
+ private int numberOfService(ArrayList<String> services, String serviceType) {
+ int count = 0;
+ for (String service: services) {
+ if (service.contains(serviceType)) {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ private void checkRESTService(String project, String svcName, String svcPkg, String
svcClass, String msgContent, String appCls) {
+ checkService(Type.REST, project, svcName, svcPkg, svcClass, msgContent, appCls);
+ checkRestSupport(project,svcName);
+ }
+
+ private void createSampleRESTWS(String project, String name, String pkg, String cls,
String appCls) {
+ SWTBotEditor ed = createSampleService(Type.REST, project, name, pkg, cls, appCls);
+ copyResourceToClass(ed, SampleRESTWebServiceTest.class.
+ getResourceAsStream("/resources/jbossws/Rest.java.ws"),false);
+ }
+
+ private void checkRestSupport(String project, String servName) {
+ addRestSupport(project);
+ testRestSupport(project, servName);
+ }
+
+ private void addRestSupport(String project) {
+ SWTBotTree tree = projectExplorer.bot().tree();
+ SWTBotTreeItem ti = tree.expandNode(project);
+ new TreeItemAction(ti, CONFIGURE_CONTEXT, REST_SUPPORT).run();
+ bot.sleep(Timing.time500MS());
+ util.waitForNonIgnoredJobs();
+ try {
+ ti.getNode(REST_WS_NODE);
+ }catch (WidgetNotFoundException exc) {
+ fail("REST support was not configured properly");
+ }
+ }
+
+ private void testRestSupport(String project, String servName) {
+ SWTBotTree tree = projectExplorer.bot().tree();
+ SWTBotTreeItem ti = tree.expandNode(project, REST_WS_NODE);
+ ArrayList<String> nodes = (ArrayList<String>)ti.getNodes();
+
+
+ assertTrue("Should be 2 GET services instead of " +
+ numberOfService(nodes,"GET"), numberOfService(nodes,"GET") ==
2);
+ assertTrue("Should be 1 DELETE service instead of " +
+ numberOfService(nodes,"DELETE"), numberOfService(nodes,"DELETE")
== 1);
+ assertTrue("Should be 1 POST service instead of " +
+ numberOfService(nodes,"POST"), numberOfService(nodes,"POST") ==
1);
+ assertTrue("Should be 1 PUT service instead of " +
+ numberOfService(nodes,"PUT"), numberOfService(nodes,"PUT") ==
1);
+
+
+ assertTrue("Node's form should be {GET /RESTSample} instead of {" +
+ nodes.get(0) + "}",nodes.get(0).equals("GET /" + servName));
+ assertTrue("Node's form should be {DELETE /RESTSample/DeleteMethod} instead
of {" +
+ nodes.get(1) + "}",nodes.get(1).equals("DELETE /" + servName +
"/DeleteMethod"));
+ assertTrue("Node's form should be {POST /RESTSample/PostMethod} instead of
{" +
+ nodes.get(2) + "}",nodes.get(2).equals("POST /" + servName +
"/PostMethod"));
+ assertTrue("Node's form should be {PUT /RESTSample/PutMethod} instead of
{" +
+ nodes.get(3) + "}",nodes.get(3).equals("PUT /" + servName +
"/PutMethod"));
+ assertTrue("Node's form should be {GET /RESTSample/{name}} instead of
{" +
+ nodes.get(4) + "}",nodes.get(4).equals("GET /" + servName +
"/{name}"));
+
+ }
+
+}
Added:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleSoapWebServiceTest.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleSoapWebServiceTest.java
(rev 0)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleSoapWebServiceTest.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.ws.ui.bot.test.sample;
+
+import org.eclipse.core.resources.IFile;
+import org.junit.Test;
+
+public class SampleSoapWebServiceTest extends SampleWSBase {
+
+ @Override
+ protected String getWsProjectName() {
+ return "SampleSOAPWS";
+ }
+
+ @Test
+ public void testSampleSoapWS() {
+ IFile dd = getDD(getWsProjectName());
+ if (!dd.exists()) {
+ createDD(getWsProjectName());
+ }
+ assertTrue(dd.exists());
+ createSampleSOAPWS(getWsProjectName(), "HelloService",
"sample", "SampleService");
+ checkSOAPService(getWsProjectName(), "HelloService",
"sample", "SampleService", "You");
+
+ createSampleSOAPWS(getWsProjectName(), "GreetService",
"greeter", "Greeter");
+ checkSOAPService(getWsProjectName(), "GreetService",
"greeter", "Greeter", "Tester");
+ }
+
+ @Test
+ public void testSimpleSoapWS() {
+
+ }
+
+}
Added:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleWSBase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleWSBase.java
(rev 0)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/sample/SampleWSBase.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.ws.ui.bot.test.sample;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Require;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Server;
+import org.jboss.tools.ws.ui.bot.test.WSAllBotTests;
+import org.jboss.tools.ws.ui.bot.test.uiutils.actions.NewSampleWSWizardAction;
+import org.jboss.tools.ws.ui.bot.test.uiutils.actions.TreeItemAction;
+import org.jboss.tools.ws.ui.bot.test.uiutils.wizards.SampleWSWizard;
+import org.jboss.tools.ws.ui.bot.test.uiutils.wizards.SampleWSWizard.Type;
+import org.jboss.tools.ws.ui.bot.test.utils.WSClient;
+import org.jboss.tools.ws.ui.bot.test.wtp.WSTestBase;
+import org.junit.AfterClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+
+@Require(server=@Server(),perspective="Java EE")
+(a)RunWith(RequirementAwareSuite.class)
+@SuiteClasses({ WSAllBotTests.class })
+public class SampleWSBase extends WSTestBase {
+
+ protected static final String SOAP_REQUEST = getSoapRequest("<ns1:sayHello
xmlns:ns1=\"http://{0}/\"><arg0>{1}</arg0></ns1:sayHello>");
+ protected static final String SERVER_URL = "localhost:8080";
+ protected static final Logger L =
Logger.getLogger(SampleSoapWebServiceTest.class.getName());
+
+ @AfterClass
+ public static void clean() {
+ servers.removeAllProjectsFromServer();
+ //projectExplorer.deleteAllProjects();
+ }
+
+ @Override
+ protected String getWsProjectName() {
+ return null;
+ }
+
+ @Override
+ protected String getWsPackage() {
+ return null;
+ }
+
+ @Override
+ protected String getWsName() {
+ return null;
+ }
+
+ protected void createDD(String project) {
+ SWTBotTree tree = projectExplorer.bot().tree();
+ SWTBotTreeItem ti = tree.expandNode(project);
+ bot.sleep(1500);
+ ti = ti.getNode("Deployment Descriptor: " + project);
+ new TreeItemAction(ti, "Generate Deployment Descriptor Stub").run();
+ bot.sleep(1500);
+ util.waitForNonIgnoredJobs();
+ bot.sleep(1500);
+ }
+
+ protected void createSampleSOAPWS(String project, String name, String pkg, String
cls) {
+ createSampleService(Type.SOAP, project, name, pkg, cls, null);
+ }
+
+ protected void checkSOAPService(String project, String svcName, String svcPkg, String
svcClass, String msgContent) {
+ checkService(Type.SOAP, project, svcName, svcPkg, svcClass, msgContent, null);
+ }
+
+ protected SWTBotEditor createSampleService(Type type, String project, String name,
String pkg, String cls, String appCls) {
+ SampleWSWizard w = new NewSampleWSWizardAction(type).run();
+ w.setProjectName(project).setServiceName(name);
+ w.setPackageName(pkg).setClassName(cls);
+ if (type == Type.REST) {
+ w.setApplicationClassName(appCls);
+ w.addRESTEasyLibraryFromRuntime();
+ }
+ w.finish();
+ util.waitForNonIgnoredJobs();
+ return bot.editorByTitle(cls + ".java");
+ }
+
+ protected void checkService(Type type, String project, String svcName, String svcPkg,
String svcClass, String msgContent, String appCls) {
+ SWTBotEditor ed = bot.activeEditor();
+ assertEquals(svcClass + ".java", ed.getTitle());
+ String code = ed.toTextEditor().getText();
+ assertContains("package " + svcPkg + ";", code);
+ String dd = readFile(getDD(project));
+ switch (type) {
+ case REST:
+ assertContains("@Path(\"/" + svcName +
"\")", code);
+ assertContains("@GET()", code);
+ assertContains("@Produces(\"text/plain\")", code);
+
assertContains("<servlet-name>Resteasy</servlet-name>", dd);
+ assertContains("<param-value>" + svcPkg + "." +
appCls + "</param-value>", dd);
+ break;
+ case SOAP:
+ assertContains("<servlet-name>" + svcName +
"</servlet-name>", dd);
+ break;
+ }
+ runProject(project);
+ switch (type) {
+ case REST:
+ try {
+ URL u = new URL("http://" + SERVER_URL + "/" +
project + "/" + svcName);
+ String s = readStream(u.openConnection().getInputStream());
+ assertEquals(msgContent, s);
+ } catch (MalformedURLException e) {
+ L.log(Level.WARNING, e.getMessage(), e);
+ } catch (IOException e) {
+ L.log(Level.WARNING, e.getMessage(), e);
+ }
+ break;
+ case SOAP:
+ try {
+ WSClient c = new WSClient(new URL("http://" + SERVER_URL +
"/" + project + "/" + svcName),
+ new QName("http://" + svcPkg + "/",
svcClass + "Service"),
+ new QName("http://" + svcPkg + "/",
svcClass + "Port"));
+ assertContains("Hello " + msgContent + "!",
c.callService(MessageFormat.format(SOAP_REQUEST, svcPkg, msgContent)));
+ } catch (MalformedURLException e) {
+ L.log(Level.WARNING, e.getMessage(), e);
+ }
+ break;
+ }
+ }
+
+ protected IProject getProject(String project) {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(project);
+ }
+
+ protected IFile getDD(String project) {
+ return getProject(project).getFile("WebContent/WEB-INF/web.xml");
+ }
+
+
+}
Modified:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/uiutils/wizards/SampleWSWizard.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/uiutils/wizards/SampleWSWizard.java 2011-12-16
07:16:43 UTC (rev 37390)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/uiutils/wizards/SampleWSWizard.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -70,6 +70,15 @@
return this;
}
+ public SampleWSWizard addRESTEasyLibraryFromRuntime() {
+ assert type == Type.REST;
+ //if server is AS, this checkbox is not enabled
+ if (bot().checkBox(1).isEnabled()) {
+ bot().checkBox(1).select();
+ }
+ return this;
+ }
+
private static String getStringFromBundle(String key) {
return Platform.getResourceString(WSUI_BUNDLE, key);
}
Modified:
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/wtp/TopDownWSTest.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/wtp/TopDownWSTest.java 2011-12-16
07:16:43 UTC (rev 37390)
+++
trunk/ws/tests/org.jboss.tools.ws.ui.bot.test/src/org/jboss/tools/ws/ui/bot/test/wtp/TopDownWSTest.java 2011-12-16
08:15:54 UTC (rev 37391)
@@ -70,7 +70,7 @@
setLevel(Slider_Level.DEVELOP);
topDownWS();
}
-
+ @Ignore
@Test
public void testAssembleService() {
setLevel(Slider_Level.ASSEMBLE);
@@ -94,7 +94,7 @@
setLevel(Slider_Level.TEST);
topDownWS();
}
- @Ignore
+
@Test
public void testDefaultPkg() {
setLevel(Slider_Level.ASSEMBLE);