View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.common.test.spring;
17  
18  import org.junit.runner.RunWith;
19  
20  /**
21   * This class will start a Jetty server and deploy an exploded war file 
22   * defined in @IntegrationServer annotation. 
23   * <p>
24   * <b>&#064;IntegrationServer</b> annotation takes the following parameters:
25   * </p>
26   * <ul>
27   *   <li><b>port</b> - Server port to deploy web application on e.g. 9090</li>
28   *   <li><b>webAppPath</b> - Webapp path of exploded war file e.g. brms-ws-1.0.0.war</li>
29   *   <li><b>contextPath</b> - Servlet context path e.g. brms-ws-1.0.0</li>
30   * </ul>
31   * <p>
32   * The &#064;SystemProperties and &#064;Property annotation is used to set 
33   * System properties before starting the Jetty server. For instance, if you 
34   * want to set the catalina.base path or the URL or port of a service that is 
35   * different from what is specified in the file CXF configuration in the war 
36   * file.
37   * </p>
38   * <p>
39   * <b>&#064;SystemProperties</b> takes the following parameter:
40   * </p>
41   * <ul>
42   *   <li><b>properties</b> - List of <code>Property</code> to set</li>
43   * </ul>
44   * <p>
45   * <b>&#064;Property</b> takes the following parameter:
46   * </p>
47   * <ul>
48   *   <li><b>key</b> - Property key</li>
49   *   <li><b>value</b> - Property value</li>
50   * </ul>
51   * <p>
52   * <b>Example 1:</b> Setup an integration test on port 8080 which is the same 
53   * port as specified in the application.properties file in the war file.
54   * </p>
55   * <pre>
56   * &#064;IntegrationServer(
57   *     port=8080, 
58   *     webAppPath="../../../brms-ws/target/brms-ws-0.1.0-SNAPSHOT", 
59   *     contextPath="/brms-ws-0.1.0-SNAPSHOT")
60   * </pre>
61   * 
62   * <b>Example 2:</b> Setup an integration test on port 9090 which is different 
63   * from what is specified in the application.properties file in the war file.
64   * </p>
65   * <pre>
66   * &#064;IntegrationServer(
67   *     port=9090, 
68   *     webAppPath="../../../brms-ws/target/brms-ws-0.1.0-SNAPSHOT", 
69   *     contextPath="/brms-ws-0.1.0-SNAPSHOT")
70   *     
71   * &#064;SystemProperties(properties={
72   *     &#064;Property(
73   *         key="ks.servicelocation.RuleManagementService", 
74   *         value="http://localhost:9090/brms-ws-0.1.0-SNAPSHOT/services/RuleManagementService")
75   *  })
76   * </pre>
77   * 
78   * <b>Example 3:</b> Integration test.
79   * <pre>
80   * <b>package</b> org.kuali.student.rules.integration;
81   * // The following system properties are only needed if you want to specify a
82   * // server port (port 9000) other than 8080 as defined in
83   * // brms-ws/src/main/resources/application.properties, 
84   * // application-ruleexecution.properties and application-rulerepository.properties
85   * <b>&#064;IntegrationServer</b>(port=9000, webappPath="../../../brms-ws/target/brms-ws-0.1.0-SNAPSHOT", contextPath="/brms-ws-0.1.0-SNAPSHOT")
86   * <b>&#064;SystemProperties</b>(properties={
87   *     <b>&#064;Property</b>(key="ks.servicelocation.RuleManagementService", value="http://localhost:9000/brms-ws-0.1.0-SNAPSHOT/services/RuleManagementService"),
88   * })
89   * <b>public class</b> IntegrationTest <b>extends</b> AbstractIntegrationServiceTest {
90   *     private final static String HOST = "http://localhost:9000/brms-ws-0.1.0-SNAPSHOT";
91   * 
92   *     private static String ruleManagementServiceURL = HOST+"/services/RuleManagementService";
93   *     private static String ruleManagementNamespace = "http://student.kuali.org/wsdl/brms/RuleManagement";
94   *     private static String ruleManagementServiceName = "RuleManagementService";
95   *     private static String ruleManagementServiceInterface = RuleManagementService.class.getName();
96   * 
97   *     private static RuleManagementService ruleManagementService;
98   * 
99   *     <b>&#064;BeforeClass</b>
100  *     public static void setUpOnce() throws Exception {
101  *         ruleManagementService = (RuleManagementService) ServiceFactory.getPort(
102  *             ruleManagementServiceURL + "?wsdl", 
103  *             ruleManagementNamespace, 
104  *             ruleManagementServiceName, 
105  *             ruleManagementServiceInterface, 
106  *             ruleManagementServiceURL);
107  *
108  *     }
109  * 	
110  *     <b>&#064;AfterClass</b>
111  *     public static void tearDownOnce() throws Exception { }
112  *
113  *     <b>&#064;Before</b>
114  *     public void setUp() throws Exception { }
115  * 	
116  *     <b>&#064;After</b>
117  *     public void tearDown() throws Exception { }
118  *     
119  *     <b>&#064;Test</b>
120  *     public void testFindBusinessRuleTypesFromTestBeans() throws Exception {
121  *         List<String> businessRuleIdList1 = ruleManagementService.findBusinessRuleIdsByBusinessRuleType("KUALI_PRE_REQ");
122  *         Assert.assertNotNull(businessRuleIdList1);
123  *         List<String> businessRuleIdList2 = ruleManagementService.findBusinessRuleIdsByBusinessRuleType("KUALI_CO_REQ");
124  *         Assert.assertNotNull(businessRuleIdList2);
125  *     }
126  * }
127  * </pre>
128  */
129 @Deprecated
130 @RunWith(IntegrationServiceTestClassRunner.class)
131 public abstract class AbstractIntegrationServiceTest {
132 
133 }