1   package org.apache.turbine.services.intake;
2   
3   /*
4    * Copyright 2001-2004 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License")
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import java.io.File;
20  import java.util.Vector;
21  
22  import javax.servlet.ServletConfig;
23  import javax.servlet.http.HttpServletResponse;
24  
25  import org.apache.fulcrum.intake.IntakeService;
26  import org.apache.fulcrum.intake.model.Group;
27  import org.apache.fulcrum.parser.DefaultParameterParser;
28  import org.apache.turbine.om.security.User;
29  import org.apache.turbine.services.TurbineServices;
30  import org.apache.turbine.services.rundata.RunDataService;
31  import org.apache.turbine.test.BaseTestCase;
32  import org.apache.turbine.test.EnhancedMockHttpServletRequest;
33  import org.apache.turbine.util.RunData;
34  import org.apache.turbine.util.TurbineConfig;
35  
36  import com.mockobjects.servlet.MockHttpServletResponse;
37  import com.mockobjects.servlet.MockHttpSession;
38  import com.mockobjects.servlet.MockServletConfig;
39  
40  /***
41   * Unit test for Intake Tool, wrapping the Fulcrum Intake service.
42   *
43   * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
44   * @version $Id: IntakeToolTest.java 349547 2005-11-28 23:02:03Z epugh $
45   */
46  public class IntakeToolTest extends BaseTestCase
47  {
48      private static TurbineConfig tc = null;
49      public IntakeToolTest(String name) throws Exception
50      {
51          super(name);
52      }
53      public void testGet() throws Exception
54      {
55          IntakeTool intakeTool = new IntakeTool();
56          intakeTool.init(getRunData());
57          File file = new File("./target/appData.ser");
58          assertTrue(
59              "Make sure serialized data file exists:" + file,
60              file.exists());
61          Group group = intakeTool.get("LoginGroup","loginGroupKey");
62          assertNotNull(group);
63          assertEquals("loginGroupKey", group.getGID());
64          assertEquals("LoginGroup", group.getIntakeGroupName());
65      }
66  
67      
68      /***
69       * Make sure refresh DOESN'T do anything
70       * @throws Exception
71       */
72      public void testRefresh() throws Exception
73      {
74          IntakeTool intakeTool = new IntakeTool();
75          intakeTool.init(getRunData());
76          int numberOfGroups = intakeTool.getGroups().size();
77          intakeTool.refresh();
78          assertEquals(numberOfGroups,intakeTool.getGroups().size());
79      }
80      private RunData getRunData() throws Exception
81      {
82          RunDataService rds =
83              (RunDataService) TurbineServices.getInstance().getService(
84                  RunDataService.SERVICE_NAME);
85          EnhancedMockHttpServletRequest request =
86              new EnhancedMockHttpServletRequest();
87          request.setupServerName("bob");
88          request.setupGetProtocol("http");
89          request.setupScheme("scheme");
90          request.setupPathInfo("damn");
91          request.setupGetServletPath("damn2");
92          request.setupGetContextPath("wow");
93          request.setupGetContentType("html/text");
94          request.setupAddHeader("Content-type", "html/text");
95          request.setupAddHeader("Accept-Language", "en-US");
96          Vector v = new Vector();
97          request.setupGetParameterNames(v.elements());
98          MockHttpSession session = new MockHttpSession();
99          session.setupGetAttribute(User.SESSION_KEY, null);
100         request.setSession(session);
101         HttpServletResponse response = new MockHttpServletResponse();
102         ServletConfig config = new MockServletConfig();
103         RunData runData = rds.getRunData(request, response, config);
104         assertEquals("Verify we are using Fulcrum parameter parser",DefaultParameterParser.class,runData.getParameters().getClass());
105         return runData;
106     }
107     
108     public void setUp() throws Exception
109     {
110         tc = new TurbineConfig(".", "/conf/test/TestFulcrumComponents.properties");
111         tc.initialize();        
112         TurbineServices.getInstance().getService(IntakeService.class.getName());
113     }
114     
115     public void tearDown() throws Exception
116     {
117         if (tc != null)
118         {
119             tc.dispose();
120         }
121     }
122 }