1 package servletunit;
2
3 // StrutsTestCase - a JUnit extension for testing Struts actions
4 // within the context of the ActionServlet.
5 // Copyright (C) 2002 Deryl Seale
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the Apache Software License as
9 // published by the Apache Software Foundation; either version 1.1
10 // of the License, or (at your option) any later version.
11 //
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // Apache Software Foundation Licens for more details.
16 //
17 // You may view the full text here: http://www.apache.org/LICENSE.txt
18
19 import javax.servlet.*;
20 import java.io.IOException;
21
22 /**
23 * Simulates a <code>javax.servlet.RequestDispatcher</code> object.
24 */
25 public class RequestDispatcherSimulator implements RequestDispatcher
26 {
27 private Object dispatchedResource;
28 /**
29 *@param dispatchedResource The <code>dispatchedResource</code> object represents the resource that
30 * <code>this</code> <code>javax.servlet.RequestDispatcher</code> is tied to.
31 * Currently this class only supports <code>javax.servlet.Servlet</code> objects
32 * and <code>java.lang.String</code> objects. If the parameter passed in is not
33 * a <code>javax.servlet.Servlet</code> object when forward or include is called
34 * the parameter's toString method is called and sent to <code>System.out</code>.
35 * Otherwise, the appropriate service method is called.
36 */
37 public RequestDispatcherSimulator( Object dispatchedResource )
38 {
39 this.dispatchedResource = dispatchedResource;
40 }
41 /**
42 * Simulates the forward method of the <code>javax.servlet.RequestDispatcher</code> interface
43 */
44 public void forward( ServletRequest request, ServletResponse response ) throws ServletException, IOException
45 {
46 if( dispatchedResource instanceof Servlet )
47 ((Servlet)dispatchedResource).service( request, response );
48 }
49 public void include( ServletRequest request, ServletResponse response ) throws ServletException, IOException
50 {
51 System.out.println( dispatchedResource.toString() );
52 }
53
54 public String getForward() {
55 if (dispatchedResource instanceof String)
56 return (String) dispatchedResource;
57 else
58 return dispatchedResource.getClass().toString();
59 }
60 }