FileDocCategorySizeDatePackage
TestTCPTransportSample.javaAPI DocApache Axis 1.44896Sat Apr 22 18:57:28 BST 2006test.functional

TestTCPTransportSample

public class TestTCPTransportSample extends TestCase
Test the stock sample code.

Fields Summary
static Log
log
Constructors Summary
public TestTCPTransportSample(String name)


       
        super(name);
    
Methods Summary
public voiddoTestDeploy()

        String[] args = { "-ltcp://localhost:8088", "samples/transport/deploy.wsdd" };
        AdminClient.main(args);
    
public voiddoTestStock()

        try {
            log.info("Testing TCP stock service...");
            GetQuote tester = new GetQuote();
            tester.getQuote(new String [] { "-ltcp://localhost:8088", "XXX" });
            String   symbol = "XXX"; // args[0] ;

            EngineConfiguration defaultConfig =
                (new DefaultEngineConfigurationFactory()).
                getClientEngineConfig();
            SimpleProvider config = new SimpleProvider(defaultConfig);
            SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
            config.deployTransport("tcp", c);

            Service service = new Service(config);

            Call     call    = (Call) service.createCall();

            call.setTargetEndpointAddress( new URL("tcp://localhost:8088") );
            call.setOperationName( new QName("urn:xmltoday-delayed-quotes", "getQuote") );
            call.addParameter( "symbol", XMLType.XSD_STRING, ParameterMode.IN );
            call.setReturnType( XMLType.XSD_FLOAT );

            Object ret = call.invoke(
                "urn:xmltoday-delayed-quotes", "getQuote",
                new Object[] {symbol} );
            if (ret instanceof Float) {
                Float res = (Float) ret;
                assertEquals("TestTCPTransportSample: stock price should be 55.25 +/- 0.000001", res.floatValue(), 55.25, 0.000001);
            } else {
                throw new AssertionFailedError("Bad return value from TCP stock test: "+ret);
            }
        }

        //    }
        catch( Exception e ) {
            e.printStackTrace();
            throw new AssertionFailedError("Fault returned from TCP stock test: "+e);
        }
    
public voiddoTestUndeploy()

        String[] args = { "-ltcp://localhost:8088", "samples/stock/undeploy.wsdd" };
        AdminClient.main(args);
    
public static voidmain(java.lang.String[] args)

      TestTCPTransportSample tester = new TestTCPTransportSample("TCP test");
      try {
        tester.testTCPTransportSample();
      } catch (Exception e) {
      }
    
public voidtestTCPTransportSample()

        try {
            log.info("Testing TCP transport.");

            log.info("Testing deployment...");
            doTestDeploy();
            log.info("OK!");

            log.info("Testing service...");
            doTestStock();
            log.info("OK!");

            // Commented out for now, because namespaced-based dispatch for the
            // TCPListener doesn't work yet.  Possible solutions:
            // 1. Deploy the AdminService at the WSDD namespace's name
            // 2. Build another dispatch mechanism into the TCP transport
            //
//            log.info("Testing undeployment...");
//            doTestUndeploy();
//            log.info("OK!");

            log.info("Test complete.");
        }
        catch( Exception e ) {
            e.printStackTrace();
            throw new AssertionFailedError("Fault returned from test: "+e);
        }