001: /*
002: * ========================================================================
003: *
004: * Copyright 2001-2003 The Apache Software Foundation.
005: *
006: * Licensed under the Apache License, Version 2.0 (the "License");
007: * you may not use this file except in compliance with the License.
008: * You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing, software
013: * distributed under the License is distributed on an "AS IS" BASIS,
014: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015: * See the License for the specific language governing permissions and
016: * limitations under the License.
017: *
018: * ========================================================================
019: */
020: package org.apache.cactus.sample.servlet.unit;
021:
022: import org.apache.cactus.ServletTestCase;
023: import org.apache.cactus.WebRequest;
024: import org.apache.cactus.WebResponse;
025:
026: /**
027: * Test global client side <code>begin()</code> and <code>end()</code>
028: * methods.
029: *
030: * @version $Id: TestGlobalBeginEnd.java 238816 2004-02-29 16:36:46Z vmassol $
031: */
032: public class TestGlobalBeginEnd extends ServletTestCase {
033: /**
034: * true if <code>end()</code> has been called.
035: */
036: private boolean isClientGlobalEndCalled;
037:
038: /**
039: * Verifies that <code>end()</code> has been called correctly.
040: *
041: * @exception Throwable on test failure
042: */
043: protected void runTest() throws Throwable {
044: super .runTest();
045:
046: // Make sure we verify if end() has been called only on
047: // the client side. Reason is that the runTest() method is
048: // called both on the client side and on the server side.
049: if (this .request == null) {
050: if (!this .isClientGlobalEndCalled) {
051: fail("end() has not been called");
052: }
053: }
054: }
055:
056: /**
057: * Verify that it is possible to modify the <code>WebRequest</code> in
058: * the common <code>begin()</code> method. It also verifies that
059: * <code>begin()</code> is called at all.
060: *
061: * @param theRequest the request object that serves to initialize the
062: * HTTP connection to the server redirector.
063: */
064: public void begin(WebRequest theRequest) {
065: theRequest.addParameter("param1", "value1");
066: }
067:
068: /**
069: * Verify that it is possible to read the connection object once in
070: * endXXX() and then again in <code>end()</code>. It also
071: * verifies that <code>end()</code> is called at all.
072: *
073: * @param theResponse the response from the server side.
074: */
075: public void end(WebResponse theResponse) {
076: assertEquals("Hello there!", theResponse.getText());
077: this .isClientGlobalEndCalled = true;
078: }
079:
080: //-------------------------------------------------------------------------
081:
082: /**
083: * Verify that it is possible to modify the <code>WebRequest</code> in
084: * the common <code>begin()()</code> method. It also verifies that
085: * <code>begin()</code> is called at all.
086: *
087: * @param theRequest the request object that serves to initialize the
088: * HTTP connection to the server redirector.
089: */
090: public void beginGlobalBeginEnd(WebRequest theRequest) {
091: assertEquals("value1", theRequest.getParameterGet("param1"));
092: }
093:
094: /**
095: * Verify that it is possible to modify the <code>WebRequest</code> in
096: * the common <code>begin()()</code> method. It also verifies that
097: * <code>begin()()</code> is called at all.
098: *
099: * @exception Exception on test failure
100: */
101: public void testGlobalBeginEnd() throws Exception {
102: assertEquals("value1", request.getParameter("param1"));
103: response.getWriter().print("Hello there!");
104: }
105:
106: /**
107: * Verify that it is possible to read the connection object once in
108: * endXXX() and then again in <code>end()</code>. It also
109: * verifies that <code>end()</code> is called at all.
110: *
111: * @param theResponse the response from the server side.
112: */
113: public void endGlobalBeginEnd(WebResponse theResponse) {
114: assertEquals("Hello there!", theResponse.getText());
115: }
116:
117: }
|