[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