1   package org.codehaus.xfire.fault;
2   
3   import java.io.ByteArrayOutputStream;
4   import org.codehaus.xfire.AbstractXFireTest;
5   import org.codehaus.xfire.MessageContext;
6   import org.codehaus.xfire.SOAPConstants;
7   import org.codehaus.xfire.handler.BadHandler;
8   import org.codehaus.xfire.service.SimpleService;
9   
10  /***
11   * XFireTest
12   * 
13   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
14   */
15  public class XFireFaultTest
16      extends AbstractXFireTest
17  {
18      
19      public void testSOAP12()
20          throws Exception
21      {
22          SOAP12FaultHandler soap12 = new SOAP12FaultHandler();
23          
24          testHandler( soap12 );
25      }
26      
27      public void testSOAP11()
28          throws Exception
29      {
30          SOAP11FaultHandler soap11 = new SOAP11FaultHandler();
31          
32          testHandler( soap11 );
33      }
34  
35      /***
36       * @param soap11
37       */
38      private void testHandler( FaultHandler soap11 )
39      {
40          SimpleService service = new SimpleService();
41          service.setName("Echo");
42          service.setSoapVersion(SOAPConstants.SOAP12_ENVELOPE_NS);
43          service.setWSDLURL(getClass().getResource("/org/codehaus/xfire/echo11.wsdl").toString());
44          
45          service.setServiceHandler(new BadHandler());
46          service.setFaultHandler(soap11);
47          
48          getServiceRegistry().register(service);
49          
50          ByteArrayOutputStream out = new ByteArrayOutputStream();
51          MessageContext context = 
52              new MessageContext( "Echo",
53                                  null,
54                                  out,
55                                  null,
56                                  null );
57          
58          getXFire().invoke(
59                  getResourceAsStream( "/org/codehaus/xfire/echo11.xml" ),
60                  context );
61          
62          System.out.println(out.toString());
63      }
64  }