1   /*
2    * Angkor Web Framework
3    *
4    * Distributable under LGPL license.
5    * See terms of license at gnu.org.
6    */
7   
8   package com.tirsen.angkor.test.unit;
9   
10  import com.tirsen.angkor.process.*;
11  import com.tirsen.angkor.Application;
12  import com.tirsen.angkor.test.unit.mock.MockRenderContext;
13  
14  import java.util.Collections;
15  
16  /***
17   * A utility class for unit tests which is simulating things happening on the pipeline.
18   * Since most things is happening directly or indirectly on the pipeline in Angkor this would
19   * probably include most unit tests of Angkor.
20   *
21   * <!-- $Id: MockPipeline.java,v 1.3 2002/10/13 13:37:26 tirsen Exp $ -->
22   * <!-- $Author: tirsen $ -->
23   *
24   * @author Jon Tirs´n (tirsen@users.sourceforge.net)
25   * @version $Revision: 1.3 $
26   */
27  public class MockPipeline extends Pipeline
28  {
29      private MockRenderContext context;
30  
31      /***
32       * Setup the execution context to simulate we're running on the pipeline.
33       */
34      public void start() throws Exception
35      {
36          ExecuteContext context = createExecuteContext(getRenderContext());
37          setCurrentExecuteContext(context);
38      }
39  
40      /***
41       * Execute the event-processing part of the event-valve.
42       */
43      public void processEvents() throws Exception
44      {
45          EventValve events = new EventValve();
46          // create an "empty" execute context
47          ExecuteContext exec = new BasicExecuteContext(Collections.EMPTY_LIST.iterator());
48          initContext(exec, getRenderContext());
49          events.execute(exec);
50      }
51  
52      /***
53       * Tear down the execution context to simulate so we're running outside the pipeline.
54       */
55      public void end()
56      {
57          setCurrentExecuteContext(null);
58      }
59  
60      public MockRenderContext getRenderContext()
61      {
62          if(context == null)
63          {
64              context = new MockRenderContext();
65          }
66          return context;
67      }
68  
69      public void setApplication(Application application)
70      {
71          getRenderContext().setApplication(application);
72      }
73  }
This page was automatically generated by Maven