1   package org.codehaus.xfire.handler;
2   
3   import org.codehaus.xfire.MessageContext;
4   import org.codehaus.xfire.fault.Soap12FaultHandler;
5   import org.codehaus.xfire.service.MessageService;
6   import org.codehaus.xfire.soap.Soap12;
7   import org.codehaus.xfire.test.AbstractXFireTest;
8   import org.dom4j.Document;
9   
10  /***
11   * @author <a href="mailto:dan@envoisolutiosn.com">Dan Diephouse</a>
12   */
13  public class SoapHandlerTest
14      extends AbstractXFireTest
15  {
16      private CheckpointHandler reqHandler;
17      private CheckpointHandler resHandler;
18      
19      public void setUp() throws Exception
20      {
21          super.setUp();
22          
23          MessageService service = new MessageService();
24          service.setName("Echo");
25          service.setSoapVersion(Soap12.getInstance());
26          service.setWSDLURL(getClass().getResource("/org/codehaus/xfire/echo11.wsdl").toString());
27          
28          service.setServiceHandler(new SoapHandler(new EndpointTestHandler()));
29          service.setFaultHandler(new Soap12FaultHandler());
30          
31          HandlerPipeline reqPipeline = new HandlerPipeline();
32          reqHandler = new CheckpointHandler();
33          reqPipeline.addHandler(reqHandler);
34          service.setRequestPipeline(reqPipeline);
35          
36          HandlerPipeline resPipeline = new HandlerPipeline();
37          resHandler = new CheckpointHandler();
38          resPipeline.addHandler(resHandler);
39          service.setResponsePipeline(resPipeline);
40          
41          getServiceRegistry().register(service);
42      }
43      
44      public void testInvoke()
45          throws Exception
46      {
47          Document response = invokeService( "Echo", "/org/codehaus/xfire/echo11.xml" );
48          
49          assertTrue(reqHandler.invoked);
50          assertTrue(resHandler.invoked);
51      }
52      
53      public class CheckpointHandler
54          extends AbstractHandler
55      {
56          public boolean invoked = false;
57  
58          public void invoke(MessageContext context)
59              throws Exception
60          {
61              this.invoked = true;
62          }
63      }
64  }