1   /*** 
2    * 
3    * Copyright 2005 LogicBlaze, Inc.
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  package org.logicblaze.lingo.example;
19  
20  import junit.framework.TestCase;
21  import org.springframework.beans.factory.xml.XmlBeanFactory;
22  import org.springframework.core.io.ClassPathResource;
23  import org.logicblaze.lingo.SpringTestSupport;
24  
25  /***
26   * A simple test case which tests the use of Lingo from Spring using the Spring XML deployment descriptor
27   *
28   * @version $Revision: 1.4 $
29   */
30  public class ExampleTest extends SpringTestSupport {
31  
32      public void testClient() throws Exception {
33          // START SNIPPET: simple
34  
35          // lets lookup the client in Spring
36          // (we could be using DI here instead)
37          ExampleService service = (ExampleService) getBean("client");
38  
39          // regular synchronous request-response
40          int i = service.regularRPC("Foo");
41          System.out.println("Found result: " + i);
42  
43          // async request-response
44          TestResultListener listener = new TestResultListener();
45          service.asyncRequestResponse("IBM", listener);
46  
47          // the server side will now invoke the listener
48          // objects's methods asynchronously
49          // END SNIPPET: simple
50  
51          listener.waitForAsyncResponses(2);
52  
53          System.out.println("Found results: " + listener.getResults());
54      }
55  
56      public void testOneWayMethodCall() throws Exception {
57          ExampleServiceImpl serverImpl = (ExampleServiceImpl) getBean("serverImpl");
58  
59          callOneWayMethod();
60  
61          serverImpl.assertOneWayCalled();
62      }
63  
64      protected void callOneWayMethod() {
65          ExampleService service = (ExampleService) getBean("client");
66  
67          long start = System.currentTimeMillis();
68          service.someOneWayMethod("James", 35);
69          logTime("Method invocation took", System.currentTimeMillis() - start);
70          System.out.println("### client side method invoked");
71      }
72  
73      protected void logTime(String text, long millis) {
74          System.out.println(text + " took: " + (millis) + " milli(s) to complete");
75      }
76  
77      protected void setUp() throws Exception {
78          super.setUp();
79  
80          // lets force the creation of the server side
81          getBean("server");
82      }
83  
84      protected String getApplicationContextXml() {
85          return "org/logicblaze/lingo/example/spring.xml";
86      }
87  }