1   /*
2    * Scope: a generic MVC framework.
3    * Copyright (c) 2000-2002, The Scope team
4    * All rights reserved.
5    *
6    *
7    * Redistribution and use in source and binary forms, with or without
8    * modification, are permitted provided that the following conditions
9    * are met:
10   *
11   * Redistributions of source code must retain the above copyright
12   * notice, this list of conditions and the following disclaimer.
13   *
14   * Redistributions in binary form must reproduce the above copyright
15   * notice, this list of conditions and the following disclaimer in the
16   * documentation and/or other materials provided with the distribution.
17   *
18   * Neither the name "Scope" nor the names of its contributors
19   * may be used to endorse or promote products derived from this software
20   * without specific prior written permission.
21   *
22   *
23   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26   * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
27   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34   *
35   *
36   * $Id: TestServletContext.java,v 1.6 2002/09/12 19:09:34 ludovicc Exp $
37   */
38  package test.controller.servlet;
39  
40  
41  import junit.framework.TestCase;
42  import org.scopemvc.controller.servlet.xml.XSLServletContext;
43  import org.scopemvc.view.servlet.Page;
44  import org.scopemvc.view.servlet.ServletView;
45  
46  /***
47   * <P>
48   *
49   * </P>
50   *
51   * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
52   * @created 05 September 2002
53   * @version $Revision: 1.6 $ $Date: 2002/09/12 19:09:34 $
54   */
55  public class TestServletContext extends TestCase {
56  
57      private DummyHTTPResponse response;
58      private DummyHTTPRequest request;
59      private ServletView servletView;
60      private Page page;
61      private XSLServletContext context;
62      private DummyServlet servlet;
63  
64  
65      /***
66       * Constructor for the TestServletContext object
67       *
68       * @param inName Name of the test
69       */
70      public TestServletContext(String inName) {
71          super(inName);
72      }
73  
74  
75      /***
76       * A unit test for JUnit
77       *
78       * @throws Exception Any abnormal exception
79       */
80      public void testConstructor() throws Exception {
81          assertSame(servlet, context.getServlet());
82          assertSame(request, context.getHttpRequest());
83          assertSame(response, context.getHttpResponse());
84      }
85  
86  
87      /***
88       * A unit test for JUnit
89       *
90       * @throws Exception Any abnormal exception
91       */
92      public void testShowView() throws Exception {
93          assertTrue(!context.hasShownView());
94          context.showView(servletView);
95          assertEquals("test", response.getContent());
96          assertTrue(context.hasShownView());
97      }
98  
99  
100     /***
101      * A unit test for JUnit
102      *
103      * @throws Exception Any abnormal exception
104      */
105     public void testShowError() throws Exception {
106         assertTrue(!context.hasShownView());
107         context.showError("abc", "uvw\nxyz");
108         String content = response.getContent();
109         assertTrue(content.indexOf("Error") != 0);
110         assertTrue(content.indexOf("abc") != 0);
111         assertTrue(content.indexOf("uvw<BR />xyz") != 0);
112         assertTrue(context.hasShownView());
113     }
114 
115 
116     /***
117      * A unit test for JUnit
118      *
119      * @throws Exception Any abnormal exception
120      */
121     public void testInternalError1() throws Exception {
122         servletView.setBoundModel(
123             new Object() {
124                 public String toString() {
125                     throw new UnsupportedOperationException();
126                 }
127             });
128         assertTrue(!context.hasShownView());
129         context.showView(servletView);
130         String content = response.getContent();
131         assertTrue(content.indexOf("Internal error") != 0);
132         assertTrue(content.indexOf("UnsupportedOperationException") != 0);
133         assertTrue(context.hasShownView());
134     }
135 
136 
137     /***
138      * A unit test for JUnit
139      *
140      * @throws Exception Any abnormal exception
141      */
142     public void testInternalError2() throws Exception {
143         servletView = new ServletView();
144         // no Pages to show!
145         assertTrue(!context.hasShownView());
146         context.showView(servletView);
147         String content = response.getContent();
148         assertTrue(content.indexOf("Internal error") != 0);
149         assertTrue(content.indexOf("UnsupportedOperationException") != 0);
150         assertTrue(content.indexOf("No visible Page to stream.") != 0);
151         assertTrue(context.hasShownView());
152     }
153 
154 
155     /***
156      * The JUnit setup method
157      *
158      * @throws Exception Any abnormal exception
159      */
160     protected void setUp() throws Exception {
161         response = new DummyHTTPResponse();
162         servletView = new ServletView();
163         page = new DummyPage(null);
164         servletView.addPage(page);
165         servletView.setBoundModel("test");
166         servlet = new DummyServlet();
167         context = new XSLServletContext(servlet, request, response, null);
168     }
169 }
This page was automatically generated by Maven