Author: jmitchell
Date: Fri Apr 15 21:23:14 2005
New Revision: 161545

URL: http://svn.apache.org/viewcvs?view=rev&rev=161545
Log:
Fix for mock objects, bring tests to 97% coverage for TagUtils

Modified:
    struts/core/trunk/src/share/org/apache/struts/mock/MockFormBean.java
    
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletRequest.java
    
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletResponse.java
    struts/core/trunk/src/share/org/apache/struts/mock/MockPageContext.java
    struts/core/trunk/src/share/org/apache/struts/util/ResponseUtils.java

Modified: struts/core/trunk/src/share/org/apache/struts/mock/MockFormBean.java
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/mock/MockFormBean.java?view=diff&r1=161544&r2=161545
==============================================================================
--- struts/core/trunk/src/share/org/apache/struts/mock/MockFormBean.java 
(original)
+++ struts/core/trunk/src/share/org/apache/struts/mock/MockFormBean.java Fri 
Apr 15 21:23:14 2005
@@ -33,18 +33,101 @@
 
 public class MockFormBean extends ActionForm {
 
-
+    /*
+     * Flag to indicate whether certain methods should complete properly
+     * or throw an Exception
+     */
+    private boolean throwException = false;
+    
+    
+    private boolean returnNulls    = false;
+    private String  defaultValue;
+    private Double  defaultDouble;
+    private int     arrayCount;
+    protected boolean booleanProperty = false;
+    
+    // ------------------- Constructors
+    
     public MockFormBean() {
         this(null);
     }
 
-
+    public MockFormBean(boolean throwException, boolean returnNulls){
+        super();
+        this.throwException = throwException;
+        this.returnNulls    = returnNulls;
+    }
+    
+    public MockFormBean(boolean throwException){
+        this.throwException = throwException;
+    }
+    
+    public MockFormBean(boolean throwException, 
+            boolean returnNulls, String defaultValue){
+        this(throwException, returnNulls);
+        this.defaultValue = defaultValue;
+        
+    }
     public MockFormBean(String stringProperty) {
         this.stringProperty = stringProperty;
     }
 
 
-    protected boolean booleanProperty = false;
+    public MockFormBean(boolean throwException, 
+            boolean returnNulls, String defaultValue, int arrayCount){
+        this(throwException, returnNulls, defaultValue);
+        this.arrayCount = arrayCount;
+        
+    }
+    
+    public MockFormBean(boolean throwException, 
+            boolean returnNulls, Double defaultDouble){
+        this(throwException, returnNulls);
+        this.defaultDouble = defaultDouble;
+        
+    }
+    
+    // ------------------- public methods
+    
+    public String getJustThrowAnException() throws Exception{
+            throw new Exception();
+    }
+    
+    public Object getThrowIllegalAccessException() throws Exception{
+        if (true)
+            throw new IllegalAccessException();
+        return null;
+    }
+    
+    public String getStringValue() throws Exception{
+        if (throwException)
+            throw new Exception();
+        if (returnNulls)
+            return null;
+        return defaultValue;
+    }
+
+    public String[] getStringArray() throws Exception{
+        if (throwException)
+            throw new Exception();
+        if (returnNulls)
+            return null;
+        
+        String[] rtn = new String[arrayCount];
+        for (int i = 0; i < rtn.length; i++) {
+            rtn[i] = defaultValue + i;
+        }
+        return rtn;
+    }
+
+    public Double getDoubleValue() throws Exception{
+        if (throwException)
+            throw new Exception();
+        if (returnNulls)
+            return null;
+        return defaultDouble;
+        
+    }
 
     public boolean getBooleanProperty() {
         return (this.booleanProperty);
@@ -59,6 +142,13 @@
         HashMap map = new HashMap();
         map.put("foo1", "bar1");
         map.put("foo2", "bar2");
+        return (map);
+    }
+
+    public Map getMapPropertyArrayValues() {
+        HashMap map = new HashMap();
+        map.put("foo1", new String[]{"bar1", "baz1"});
+        map.put("foo2", new String[]{"bar2", "baz2"});
         return (map);
     }
 

Modified: 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletRequest.java
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletRequest.java?view=diff&r1=161544&r2=161545
==============================================================================
--- 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletRequest.java 
(original)
+++ 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletRequest.java 
Fri Apr 15 21:23:14 2005
@@ -299,10 +299,13 @@
     }
 
 
-    public HttpSession getSession(boolean create) {
+    public HttpSession getSession( boolean create ) {
         if (create && (session == null)) {
-            return new MockHttpSession();
-//            throw new UnsupportedOperationException();
+            session = new MockHttpSession();
+            
+                       // modified to act like the real deal,
+                       // call with (false) if you want null
+                       // throw new UnsupportedOperationException();
         }
         return (session);
     }

Modified: 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletResponse.java
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletResponse.java?view=diff&r1=161544&r2=161545
==============================================================================
--- 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletResponse.java 
(original)
+++ 
struts/core/trunk/src/share/org/apache/struts/mock/MockHttpServletResponse.java 
Fri Apr 15 21:23:14 2005
@@ -25,6 +25,7 @@
 import java.util.Locale;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
 

Modified: 
struts/core/trunk/src/share/org/apache/struts/mock/MockPageContext.java
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/mock/MockPageContext.java?view=diff&r1=161544&r2=161545
==============================================================================
--- struts/core/trunk/src/share/org/apache/struts/mock/MockPageContext.java 
(original)
+++ struts/core/trunk/src/share/org/apache/struts/mock/MockPageContext.java Fri 
Apr 15 21:23:14 2005
@@ -20,6 +20,9 @@
 package org.apache.struts.mock;
 
 
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -55,10 +58,21 @@
 
 public class MockPageContext extends PageContext {
 
+    // ----------------------------------------------------- Instance Variables
+    protected ServletContext application = null;
+    protected HashMap attributes = new HashMap();    // Page scope attributes
+    protected ServletConfig config = null;
+    protected ServletRequest request = null;
+    protected ServletResponse response = null;
+    protected HttpSession session = null;
+
+    private boolean throwIOException;
+    private boolean returnBodyContent;
+    
 
 
-    // ----------------------------------------------------------- Constructors
 
+    // ----------------------------------------------------------- Constructors
 
     public MockPageContext() {
         super();
@@ -72,17 +86,22 @@
         setValues(config, request, response);
     }
 
-
-    // ----------------------------------------------------- Instance Variables
-
-
-    protected ServletContext application = null;
-    protected HashMap attributes = new HashMap();    // Page scope attributes
-    protected ServletConfig config = null;
-    protected ServletRequest request = null;
-    protected ServletResponse response = null;
-    protected HttpSession session = null;
-
+    /**
+     * Construct a new PageContext impl.
+     * @param throwIOException Determines if the returned JspWriter should 
+     *                         throw an IOException on any method call.
+     * @param returnBody Determines if getOut() should return a new 
+     *                   <code>JspWriter</code> or a <code>BodyContent</code>.
+     */
+    public MockPageContext(boolean throwIOException, boolean returnBody){
+        this.throwIOException = throwIOException;
+        this.returnBodyContent = returnBody;
+    }
+    private void checkAndThrow() throws IOException{
+        if (throwIOException){
+            throw new IOException();
+        }
+    }
 
     // --------------------------------------------------------- Public Methods
 
@@ -206,9 +225,78 @@
     }
 
 
+    /**
+     * Custom JspWriter that throws the specified exception 
+     * (supplied on the constructor...if any), else it simply 
+     * returns.
+     */
     public JspWriter getOut() {
-        throw new UnsupportedOperationException();
+                JspWriter jspWriter = new JspWriter(0, false) {
+                    public void print(String s) throws IOException {
+                        checkAndThrow();
+                    }
+                    public void newLine() throws IOException {checkAndThrow();}
+                    public void print(boolean b) throws IOException 
{checkAndThrow();}
+                    public void print(char c) throws IOException 
{checkAndThrow();}
+                    public void print(int i) throws IOException 
{checkAndThrow();}
+                    public void print(long l) throws IOException 
{checkAndThrow();}
+                    public void print(float f) throws IOException 
{checkAndThrow();}
+                    public void print(double d) throws IOException 
{checkAndThrow();}
+                    public void print(char[] s) throws IOException 
{checkAndThrow();}
+                    public void print(Object obj) throws IOException 
{checkAndThrow();}
+                    public void println() throws IOException {checkAndThrow();}
+                    public void println(boolean x) throws IOException 
{checkAndThrow();}
+                    public void println(char x) throws IOException 
{checkAndThrow();}
+                    public void println(int x) throws IOException 
{checkAndThrow();}
+                    public void println(long x) throws IOException 
{checkAndThrow();}
+                    public void println(float x) throws IOException 
{checkAndThrow();}
+                    public void println(double x) throws IOException 
{checkAndThrow();}
+                    public void println(char[] x) throws IOException 
{checkAndThrow();}
+                    public void println(String x) throws IOException 
{checkAndThrow();}
+                    public void println(Object x) throws IOException 
{checkAndThrow();}
+                    public void clear() throws IOException {checkAndThrow();}
+                    public void clearBuffer() throws IOException 
{checkAndThrow();}
+                    public void flush() throws IOException {checkAndThrow();}
+                    public void close() throws IOException {checkAndThrow();}
+                    public int getRemaining() {return 0;}
+                    public void write(char[] cbuf, int off, int len) throws 
IOException {checkAndThrow();}
+
+                };
+                if (returnBodyContent)
+                    return new BodyContent(jspWriter) {
+                    public Reader getReader() {return null;}
+                    public String getString() {return null;}
+                    public void writeOut(Writer out) throws IOException 
{checkAndThrow();}
+                    public void newLine() throws IOException {checkAndThrow();}
+                    public void print(boolean b) throws IOException 
{checkAndThrow();}
+                    public void print(char c) throws IOException 
{checkAndThrow();}
+                    public void print(int i) throws IOException 
{checkAndThrow();}
+                    public void print(long l) throws IOException 
{checkAndThrow();}
+                    public void print(float f) throws IOException 
{checkAndThrow();}
+                    public void print(double d) throws IOException 
{checkAndThrow();}
+                    public void print(char[] s) throws IOException 
{checkAndThrow();}
+                    public void print(String s) throws IOException 
{checkAndThrow();}
+                    public void print(Object obj) throws IOException 
{checkAndThrow();}
+                    public void println() throws IOException {checkAndThrow();}
+                    public void println(boolean x) throws IOException 
{checkAndThrow();}
+                    public void println(char x) throws IOException 
{checkAndThrow();}
+                    public void println(int x) throws IOException 
{checkAndThrow();}
+                    public void println(long x) throws IOException 
{checkAndThrow();}
+                    public void println(float x) throws IOException 
{checkAndThrow();}
+                    public void println(double x) throws IOException 
{checkAndThrow();}
+                    public void println(char[] x) throws IOException 
{checkAndThrow();}
+                    public void println(String x) throws IOException 
{checkAndThrow();}
+                    public void println(Object x) throws IOException 
{checkAndThrow();}
+                    public void clear() throws IOException {checkAndThrow();}
+                    public void clearBuffer() throws IOException 
{checkAndThrow();}
+                    public void close() throws IOException {checkAndThrow();}
+                    public int getRemaining() {return 0;}
+                    public void write(char[] cbuf, int off, int len) throws 
IOException {checkAndThrow();}
+
+                };
+                return jspWriter;
     }
+
 
 
     public Object getPage() {

Modified: struts/core/trunk/src/share/org/apache/struts/util/ResponseUtils.java
URL: 
http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/util/ResponseUtils.java?view=diff&r1=161544&r2=161545
==============================================================================
--- struts/core/trunk/src/share/org/apache/struts/util/ResponseUtils.java 
(original)
+++ struts/core/trunk/src/share/org/apache/struts/util/ResponseUtils.java Fri 
Apr 15 21:23:14 2005
@@ -82,7 +82,7 @@
      * by the corresponding character entities.
      *
      * @param value The string to be filtered and returned
-     * @deprecated
+     * @deprecated  Why????
      */
     public static String filter(String value) {
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to