Author: hiranya
Date: Sun Jul 14 23:06:26 2013
New Revision: 1503079
URL: http://svn.apache.org/r1503079
Log:
Adding sample 800 (REST APIs) to the integration test suite. Updated sample 150
(proxy services) to check for the WSDL of the proxy service.
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/BasicHttpClient.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/HttpResponse.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample800.java
synapse/trunk/java/modules/integration/src/test/resources/sample800.xml
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/proxy/Sample150.java
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java?rev=1503079&r1=1503078&r2=1503079&view=diff
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
(original)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
Sun Jul 14 23:06:26 2013
@@ -28,6 +28,7 @@ import org.apache.synapse.samples.framew
import org.apache.synapse.samples.framework.tests.proxy.*;
import org.apache.synapse.samples.framework.tests.qos.Sample100;
import org.apache.synapse.samples.framework.tests.qos.Sample101;
+import org.apache.synapse.samples.framework.tests.rest.Sample800;
import java.util.ArrayList;
import java.util.HashMap;
@@ -138,7 +139,7 @@ public class TestSamplesHandlerSuite ext
}
} else {
suiteName = "AllSamplesSuite";
- for (int i = 0; i <= 600; i++) {
+ for (int i = 0; i <= 1000; i++) {
Class testClass = (Class)
sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
@@ -222,5 +223,7 @@ public class TestSamplesHandlerSuite ext
sampleClassRepo.put("451", Sample451.class);
sampleClassRepo.put("452", Sample452.class);
sampleClassRepo.put("460", Sample460.class);
+
+ sampleClassRepo.put("800", Sample800.class);
}
}
\ No newline at end of file
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/BasicHttpClient.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/BasicHttpClient.java?rev=1503079&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/BasicHttpClient.java
(added)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/BasicHttpClient.java
Sun Jul 14 23:06:26 2013
@@ -0,0 +1,38 @@
+package org.apache.synapse.samples.framework.clients;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.BasicHttpEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+
+import java.io.ByteArrayInputStream;
+
+public class BasicHttpClient {
+
+ public HttpResponse doGet(String url) throws Exception {
+ HttpClient client = new DefaultHttpClient();
+ try {
+ HttpGet get = new HttpGet(url);
+ return new HttpResponse(client.execute(get));
+ } finally {
+ client.getConnectionManager().shutdown();
+ }
+ }
+
+ public HttpResponse doPost(String url, byte[] payload, String contentType)
throws Exception {
+ HttpClient client = new DefaultHttpClient();
+ try {
+ HttpPost post = new HttpPost(url);
+ BasicHttpEntity entity = new BasicHttpEntity();
+ entity.setContentType(contentType);
+ entity.setContent(new ByteArrayInputStream(payload));
+ post.setEntity(entity);
+ return new HttpResponse(client.execute(post));
+ } finally {
+ client.getConnectionManager().shutdown();
+ }
+ }
+
+}
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/HttpResponse.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/HttpResponse.java?rev=1503079&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/HttpResponse.java
(added)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/HttpResponse.java
Sun Jul 14 23:06:26 2013
@@ -0,0 +1,64 @@
+package org.apache.synapse.samples.framework.clients;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+public class HttpResponse {
+
+ private int status;
+ private Map<String,String> headers = new HashMap<String, String>();
+ private byte[] body;
+
+ public HttpResponse(org.apache.http.HttpResponse response) throws
IOException {
+ this.status = response.getStatusLine().getStatusCode();
+ Header[] headers = response.getAllHeaders();
+ for (Header header : headers) {
+ this.headers.put(header.getName(), header.getValue());
+ }
+ HttpEntity entity = response.getEntity();
+ if (entity != null) {
+ InputStream in = entity.getContent();
+ byte[] data = new byte[1024];
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ int len;
+ while ((len = in.read(data)) != -1) {
+ out.write(data, 0, len);
+ }
+ this.body = out.toByteArray();
+ out.close();
+ in.close();
+ }
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public Map<String, String> getHeaders() {
+ return headers;
+ }
+
+ public byte[] getBody() {
+ return body;
+ }
+
+ public OMElement getBodyAsXML() {
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(
+ new ByteArrayInputStream(this.body));
+ return builder.getDocumentElement();
+ }
+
+ public String getBodyAsString() {
+ return new String(this.body);
+ }
+}
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/proxy/Sample150.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/proxy/Sample150.java?rev=1503079&r1=1503078&r2=1503079&view=diff
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/proxy/Sample150.java
(original)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/proxy/Sample150.java
Sun Jul 14 23:06:26 2013
@@ -18,10 +18,14 @@
*/
package org.apache.synapse.samples.framework.tests.proxy;
+import org.apache.axiom.om.OMElement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpStatus;
import org.apache.synapse.samples.framework.SampleClientResult;
import org.apache.synapse.samples.framework.SynapseTestCase;
+import org.apache.synapse.samples.framework.clients.BasicHttpClient;
+import org.apache.synapse.samples.framework.clients.HttpResponse;
import org.apache.synapse.samples.framework.clients.StockQuoteSampleClient;
public class Sample150 extends SynapseTestCase {
@@ -35,7 +39,6 @@ public class Sample150 extends SynapseTe
client = getStockQuoteClient();
}
-
public void testBasicProxy() {
String addUrl = "http://localhost:8280/services/StockQuoteProxy";
log.info("Running test: Introduction to proxy services");
@@ -43,4 +46,12 @@ public class Sample150 extends SynapseTe
assertTrue("Client did not get run successfully ",
result.responseReceived());
}
+ public void testProxyWSDL() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ HttpResponse response =
client.doGet("http://localhost:8280/services/StockQuoteProxy?wsdl");
+ assertEquals(response.getStatus(), HttpStatus.SC_OK);
+ OMElement element = response.getBodyAsXML();
+ assertEquals(element.getLocalName(), "definitions");
+ }
+
}
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample800.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample800.java?rev=1503079&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample800.java
(added)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample800.java
Sun Jul 14 23:06:26 2013
@@ -0,0 +1,40 @@
+package org.apache.synapse.samples.framework.tests.rest;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpStatus;
+import org.apache.synapse.samples.framework.SynapseTestCase;
+import org.apache.synapse.samples.framework.clients.BasicHttpClient;
+import org.apache.synapse.samples.framework.clients.HttpResponse;
+
+public class Sample800 extends SynapseTestCase {
+
+ private static final Log log = LogFactory.getLog(Sample800.class);
+
+ public Sample800() {
+ super(800);
+ }
+
+ public void testGetQuote() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ HttpResponse response =
client.doGet("http://127.0.0.1:8280/stockquote/view/IBM");
+ assertEquals(response.getStatus(), HttpStatus.SC_OK);
+ OMElement body = response.getBodyAsXML();
+ assertEquals(body.getLocalName(), "getQuoteResponse");
+ }
+
+ public void testPlaceOrder() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ String payload = "<placeOrder xmlns=\"http://services.samples\">\n" +
+ " <order>\n" +
+ " <price>50</price>\n" +
+ " <quantity>10</quantity>\n" +
+ " <symbol>IBM</symbol>\n" +
+ " </order>\n" +
+ "</placeOrder>";
+ HttpResponse response =
client.doPost("http://127.0.0.1:8280/stockquote/order",
+ payload.getBytes(), "application/xml");
+ assertEquals(response.getStatus(), HttpStatus.SC_ACCEPTED);
+ }
+}
Added: synapse/trunk/java/modules/integration/src/test/resources/sample800.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/resources/sample800.xml?rev=1503079&view=auto
==============================================================================
--- synapse/trunk/java/modules/integration/src/test/resources/sample800.xml
(added)
+++ synapse/trunk/java/modules/integration/src/test/resources/sample800.xml Sun
Jul 14 23:06:26 2013
@@ -0,0 +1,19 @@
+<synapseSample>
+ <sampleID>800</sampleID>
+ <sampleName>Introduction to REST APIs</sampleName>
+ <synapseConfig>
+ <!--if we don't specify the optional values, framework will use
defaults-->
+ <axis2Repo>modules/integration/target/test_repos/synapse</axis2Repo>
+
<axis2Xml>modules/integration/target/test_repos/synapse/conf/axis2_def.xml</axis2Xml>
+ <synapseXml>repository/conf/sample/synapse_sample_800.xml</synapseXml>
+ </synapseConfig>
+ <backEndServerConfig>
+ <axis2Server id='0'>
+
<axis2Repo>modules/integration/target/test_repos/axis2Server</axis2Repo>
+
<axis2Xml>modules/integration/target/test_repos/axis2Server/conf/axis2_def.xml</axis2Xml>
+ </axis2Server>
+ </backEndServerConfig>
+ <clientConfig>
+
<clientRepo>modules/integration/target/test_repos/axis2Client</clientRepo>
+ </clientConfig>
+</synapseSample>