[jboss-svn-commits] JBL Code SVN: r36016 - labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 22 08:23:55 EST 2010
Author: ge0ffrey
Date: 2010-11-22 08:23:54 -0500 (Mon, 22 Nov 2010)
New Revision: 36016
Modified:
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/FeedServletTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/PackageDeploymentServletTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/RestAPIServletTest.java
Log:
fix test failures after changes of GUVNOR-1100 due to bad hacks in MockHttpResponse
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/FeedServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/FeedServletTest.java 2010-11-22 12:32:43 UTC (rev 36015)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/FeedServletTest.java 2010-11-22 13:23:54 UTC (rev 36016)
@@ -45,7 +45,7 @@
asset.updateFormat("drl");
asset.checkin("");
- //Mock up SEAM contexts
+ //Mock up SEAM contexts
Map application = new HashMap<String, Object>();
Lifecycle.beginApplication( application );
Lifecycle.beginCall();
@@ -68,8 +68,7 @@
MockHTTPRequest req = new MockHTTPRequest("/org.foo/feed/package?name=...", headers);
FeedServlet fs = new FeedServlet();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- MockHTTPResponse res = new MockHTTPResponse(out);
+ MockHTTPResponse res = new MockHTTPResponse();
fs.doGet(req, res);
assertEquals(HttpServletResponse.SC_UNAUTHORIZED, res.errorCode);
@@ -88,12 +87,10 @@
}
});
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
-
- String r = new String(out.toByteArray());
+ String r = res.extractContent();
assertNotNull(r);
assertTrue(r.indexOf("asset1") > -1);
@@ -107,11 +104,10 @@
}
});
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
- r = new String(out.toByteArray());
+ r = res.extractContent();
assertNotNull(r);
assertFalse(r.indexOf("asset1.drl") > -1);
@@ -124,11 +120,10 @@
}
});
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
- r = new String(out.toByteArray());
+ r = res.extractContent();
assertNotNull(r);
assertTrue(r.indexOf("asset1") > -1);
@@ -173,11 +168,10 @@
}
});
FeedServlet fs = new FeedServlet();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- MockHTTPResponse res = new MockHTTPResponse(out);
+ MockHTTPResponse res = new MockHTTPResponse();
fs.doGet(req, res);
- String r = new String(out.toByteArray());
+ String r = res.extractContent();
assertNotNull(r);
assertTrue(r.indexOf("asset1") > -1);
@@ -192,11 +186,10 @@
}
});
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
- r = new String(out.toByteArray());
+ r = res.extractContent();
assertNotNull(r);
assertTrue(r.indexOf("asset1") > -1);
@@ -205,8 +198,7 @@
midentity.setAllowLogin(false);
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
assertEquals(HttpServletResponse.SC_UNAUTHORIZED, res.errorCode);
@@ -248,8 +240,7 @@
MockHTTPRequest req = new MockHTTPRequest("/org.foo/feed/discussion?package=...", headers);
FeedServlet fs = new FeedServlet();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- MockHTTPResponse res = new MockHTTPResponse(out);
+ MockHTTPResponse res = new MockHTTPResponse();
fs.doGet(req, res);
assertEquals(HttpServletResponse.SC_UNAUTHORIZED, res.errorCode);
@@ -268,11 +259,10 @@
}
});
fs = new FeedServlet();
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
fs.doGet(req, res);
- String r = new String(out.toByteArray());
+ String r = res.extractContent();
assertNotNull(r);
assertTrue(r.indexOf("This is a comment") > -1);
assertTrue(r.indexOf("This is another comment") > r.indexOf("This is a comment"));
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java 2010-11-22 12:32:43 UTC (rev 36015)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java 2010-11-22 13:23:54 UTC (rev 36016)
@@ -16,10 +16,12 @@
package org.drools.guvnor.server.files;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
-import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -28,29 +30,48 @@
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.io.IOUtils;
+
public class MockHTTPResponse implements HttpServletResponse {
- ServletOutputStream out;
- String contentType;
+ private ByteArrayOutputStream byteArrayOut;
+ private ServletOutputStream servletOut;
+ private PrintWriter writer;
+ private String contentType;
Map<String, String> headers = new HashMap<String, String>();
int errorCode;
- StringWriter stringWriter = new StringWriter();
- private PrintWriter writer = new PrintWriter(stringWriter);
- public MockHTTPResponse(OutputStream out) {
- this.out = new MockStream(out);
-
+ public MockHTTPResponse() {
+ byteArrayOut = new ByteArrayOutputStream();
+ servletOut = new MockStream(byteArrayOut);
+ writer = new PrintWriter(new OutputStreamWriter(servletOut));
}
- public void addCookie(Cookie arg0) {
+ public String extractContent() {
+ return extractContent("UTF-8");
+ }
+
+ public String extractContent(String encoding) {
+ try {
+ return new String(extractContentBytes(), encoding);
+ } catch (UnsupportedEncodingException e) {
+ throw new IllegalArgumentException("Unsupported encoding (" + encoding + ").", e);
+ }
+ }
+
+ public byte[] extractContentBytes() {
+ IOUtils.closeQuietly(writer);
+ return byteArrayOut.toByteArray();
+ }
+
+ public void addCookie(Cookie arg0) {
// TODO Auto-generated method stub
}
public void addDateHeader(String arg0, long arg1) {
// TODO Auto-generated method stub
-
}
public void addHeader(String arg0, String arg1) {
@@ -64,7 +85,6 @@
}
public boolean containsHeader(String a) {
-
return this.headers.containsKey(a);
}
@@ -143,23 +163,17 @@
return null;
}
- public String getContentType() {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-
public Locale getLocale() {
// TODO Auto-generated method stub
return null;
}
public ServletOutputStream getOutputStream() throws IOException {
-
- return out;
+ return servletOut;
}
public PrintWriter getWriter() throws IOException {
-
- return writer ;
+ return writer;
}
public void setCharacterEncoding(String s) {
@@ -191,9 +205,12 @@
}
+ public String getContentType() {
+ return contentType;
+ }
+
public void setContentType(String s) {
this.contentType = s;
-
}
public void setLocale(Locale arg0) {
@@ -212,6 +229,15 @@
public void write(int a) throws IOException {
out.write(a);
}
+
+ public void flush() throws IOException {
+ out.flush();
+ }
+
+ public void close() throws IOException {
+ out.close();
+ }
+
}
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/PackageDeploymentServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/PackageDeploymentServletTest.java 2010-11-22 12:32:43 UTC (rev 36015)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/PackageDeploymentServletTest.java 2010-11-22 13:23:54 UTC (rev 36016)
@@ -76,24 +76,22 @@
//check source
PackageDeploymentServlet serv = new PackageDeploymentServlet();
MockHTTPRequest req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST.drl", null);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- MockHTTPResponse res = new MockHTTPResponse(out);
+ MockHTTPResponse res = new MockHTTPResponse();
serv.doGet(req, res);
- assertNotNull(out.toByteArray());
- String drl = new String(out.toByteArray());
+ assertNotNull(res.extractContentBytes());
+ String drl = res.extractContent();
assertTrue(drl.indexOf("rule") > -1);
//now binary
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- assertNotNull(out.toByteArray());
- byte[] bin = out.toByteArray();
+ assertNotNull(res.extractContentBytes());
+ byte[] bin = res.extractContentBytes();
byte[] bin_ = pkg.getCompiledPackageBytes();
org.drools.rule.Package o = (org.drools.rule.Package) DroolsStreamUtils.streamIn( new ByteArrayInputStream(bin) );
@@ -110,23 +108,21 @@
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1.drl", null);
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- assertNotNull(out.toByteArray());
- drl = new String(out.toByteArray());
+ assertNotNull(res.extractContentBytes());
+ drl = new String(res.extractContentBytes());
assertTrue(drl.indexOf("rule") > -1);
//now binary
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1", null);
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- assertNotNull(out.toByteArray());
- bin = out.toByteArray();
+ assertNotNull(res.extractContentBytes());
+ bin = res.extractContentBytes();
bin_ = pkg.getCompiledPackageBytes();
assertEquals(bin_.length, bin.length);
@@ -134,12 +130,11 @@
//now get an individual asset source
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1/someRule.drl", null);
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- assertNotNull(out.toByteArray());
- drl = new String(out.toByteArray());
+ assertNotNull(res.extractContentBytes());
+ drl = res.extractContent();
System.err.println(drl);
assertTrue(drl.indexOf("rule") > -1);
assertEquals(-1, drl.indexOf("package"));
@@ -149,8 +144,7 @@
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
req.method = "HEAD";
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doHead(req, res);
assertTrue(res.headers.size() > 0);
String lm = res.headers.get("Last-Modified");
@@ -159,8 +153,7 @@
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST", null);
req.method = "HEAD";
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doHead(req, res);
assertTrue(res.headers.size() > 0);
@@ -169,8 +162,7 @@
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testPDSGetPackage/LATEST.drl", null);
req.method = "HEAD";
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doHead(req, res);
assertTrue(res.headers.size() > 0);
@@ -301,20 +293,18 @@
//now run the scenarios
PackageDeploymentServlet serv = new PackageDeploymentServlet();
MockHTTPRequest req = new MockHTTPRequest("/package/testScenariosURL/LATEST/SCENARIOS", headers);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- MockHTTPResponse res = new MockHTTPResponse(out);
+ MockHTTPResponse res = new MockHTTPResponse();
serv.doGet(req, res);
- String testResult = new String(out.toByteArray());
+ String testResult = res.extractContent();
assertNotNull(testResult);
assertEquals("No test scenarios found.", testResult);
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testScenariosURL/SNAP1/SCENARIOS", headers);
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- testResult = new String(out.toByteArray());
+ testResult = res.extractContent();
assertNotNull(testResult);
assertEquals("No test scenarios found.", testResult);
@@ -322,11 +312,10 @@
serv = new PackageDeploymentServlet();
req = new MockHTTPRequest("/package/testScenariosURL/SNAP1/ChangeSet.xml", headers);
req.url = new StringBuffer("http://foo/ChangeSet.xml");
- out = new ByteArrayOutputStream();
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
- testResult = new String(out.toByteArray());
+ testResult = res.extractContent();
assertNotNull(testResult);
assertTrue(testResult.indexOf("<resource source='http://foo' type='PKG' />") > 0);
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/RestAPIServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/RestAPIServletTest.java 2010-11-22 12:32:43 UTC (rev 36015)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/RestAPIServletTest.java 2010-11-22 13:23:54 UTC (rev 36016)
@@ -70,7 +70,7 @@
String uri = "http://loser/api/packages/testGetRestServlet/asset1.drl";
MockHTTPRequest req = new MockHTTPRequest(uri, headers);
- MockHTTPResponse res = new MockHTTPResponse(new ByteArrayOutputStream());
+ MockHTTPResponse res = new MockHTTPResponse();
//try with no password
serv.doGet(req, res);
@@ -85,7 +85,7 @@
}
};
req = new MockHTTPRequest(uri, headers);
- res = new MockHTTPResponse(new ByteArrayOutputStream());
+ res = new MockHTTPResponse();
serv.doGet(req, res);
assertEquals(HttpServletResponse.SC_UNAUTHORIZED, res.errorCode);
assertTrue(res.headers.containsKey("WWW-Authenticate"));
@@ -99,27 +99,25 @@
}
};
- ByteArrayOutputStream out = new ByteArrayOutputStream();
req = new MockHTTPRequest(uri, headers);
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
assertEquals(0, res.errorCode);
- String data = out.toString();
+ String data = res.extractContent();
assertEquals("some content", data);
- assertEquals("application/x-download", res.contentType);
+ assertEquals("application/x-download", res.getContentType());
assertEquals(true, res.containsHeader("Content-Disposition"));
//now try getting some version listings
- out = new ByteArrayOutputStream();
req = new MockHTTPRequest(uri, headers);
req.queryString = "version=all";
- res = new MockHTTPResponse(out);
+ res = new MockHTTPResponse();
serv.doGet(req, res);
assertEquals(0, res.errorCode);
- data = out.toString();
+ data = res.extractContent();
assertFalse("some content".equals(data));
assertNotNull(data);
@@ -145,7 +143,7 @@
Contexts.getSessionContext().set( "repository", repo );
- HashMap<String, String> headers = new HashMap<String, String>() {
+ Map<String, String> headers = new HashMap<String, String>() {
{
put("Authorization", "BASIC " + new String(Base64.encode("test:password".getBytes())));
}
@@ -155,12 +153,12 @@
RestAPIServlet serv = new RestAPIServlet();
MockHTTPRequest req = new MockHTTPRequest("http://foo/api/packages/testPostRestServlet/asset1.drl", headers, in);
- MockHTTPResponse res = new MockHTTPResponse(null);
+ MockHTTPResponse res = new MockHTTPResponse();
serv.doPost(req, res);
- assertEquals("OK", res.stringWriter.toString());
+ assertEquals("OK", res.extractContent());
- AssetItemIterator it = pkg.listAssetsByFormat(new String[] {"drl"});
+ AssetItemIterator it = pkg.listAssetsByFormat("drl");
AssetItem ass = it.next();
assertEquals("asset1", ass.getName());
assertEquals("drl", ass.getFormat());
@@ -170,9 +168,9 @@
in = new ByteArrayInputStream("more content".getBytes());
req = new MockHTTPRequest("http://foo/api/packages/testPostRestServlet/asset2.xls", headers, in);
- res = new MockHTTPResponse(null);
+ res = new MockHTTPResponse();
serv.doPost(req, res);
- assertEquals("OK", res.stringWriter.toString());
+ assertEquals("OK", res.extractContent());
AssetItem ass2 = pkg.loadAsset("asset2");
assertEquals("xls", ass2.getFormat());
@@ -211,7 +209,7 @@
Contexts.getSessionContext().set( "repository", repo );
- HashMap<String, String> headers = new HashMap<String, String>() {
+ Map<String, String> headers = new HashMap<String, String>() {
{
put("Authorization", "BASIC " + new String(Base64.encode("test:password".getBytes())));
put("Checkin-Comment", "hey ho");
@@ -223,10 +221,10 @@
MockHTTPRequest req = new MockHTTPRequest("http://foo/api/packages/testPutRestServlet/asset1.drl", headers, in);
- MockHTTPResponse res = new MockHTTPResponse(null);
+ MockHTTPResponse res = new MockHTTPResponse();
serv.doPut(req, res);
- assertEquals("OK", res.stringWriter.toString());
+ assertEquals("OK", res.extractContent());
ass = pkg.loadAsset("asset1");
assertEquals("some new content", ass.getContent());
@@ -261,7 +259,7 @@
Contexts.getSessionContext().set( "repository", repo );
- HashMap<String, String> headers = new HashMap<String, String>() {
+ Map<String, String> headers = new HashMap<String, String>() {
{
put("Authorization", "BASIC " + new String(Base64.encode("test:password".getBytes())));
}
@@ -271,10 +269,10 @@
RestAPIServlet serv = new RestAPIServlet();
MockHTTPRequest req = new MockHTTPRequest("http://foo/api/packages/testDeleteRestServlet/asset1.drl", headers, in);
- MockHTTPResponse res = new MockHTTPResponse(null);
+ MockHTTPResponse res = new MockHTTPResponse();
serv.doDelete(req, res);
- assertEquals("OK", res.stringWriter.toString());
+ assertEquals("OK", res.extractContent());
More information about the jboss-svn-commits
mailing list