XPersistantProxyTest.java :  » XML-UI » xui32 » com » xoetrope » service » test » Java Open Source

Java Open Source » XML UI » xui32 
xui32 » com » xoetrope » service » test » XPersistantProxyTest.java
package com.xoetrope.service.test;

import java.util.Date;

import net.xoetrope.optional.service.XRouteManager;
import net.xoetrope.optional.service.XServiceModelNode;
import com.xoetrope.service.CallbackToken;
import com.xoetrope.service.XPersistantService;
import com.xoetrope.service.XServiceCallback;
import com.xoetrope.service.servlet.XUnreliableServiceServlet;
import net.xoetrope.xml.XmlElement;
import net.xoetrope.xui.data.XModel;
import net.xoetrope.xui.XProjectManager;

/**
 * Test the unreliable service servelt to see that it returns the expected errors
 * <p>Copyright (c) Xoetrope Ltd. 2001-2004</p>
 * $Revision: 1.2 $
 */
public class XPersistantProxyTest extends XServiceTest implements XServiceCallback
{
  int callbackToken = -1;

  public XPersistantProxyTest()
  {
    super();
    defaultURLStr = "http://localhost:8080/xunreliableservlet";
  }

  public void testServer()
  {
    String[] argNames = {
        "reliability"};

    XRouteManager routeMgr = (XRouteManager)XProjectManager.getCurrentProject().getObject( "Routes" );
    XServiceModelNode node = new XServiceModelNode();
    XModel.getInstance().set( "TestPersistenProxyService", node );
    try {
      node.setupService( "getName64", routeMgr.getRoute( "persistRoute", "com.xoetrope.service.test.CalcTestService" ), argNames );
      XPersistantService sp = ( XPersistantService )node.getServiceProxy();
      sp.setServiceName( "TestPersistenProxyService" );
      long sleepTime = sleepTime = new Long( XProjectManager.getCurrentProject().getStartupParam( "CacheSleepTime" ) ).longValue();
      long endTime = new Date().getTime() + 5 * sleepTime + sp.getNumStoredCalls() * sleepTime;
      node.setNumAttributes( 1 );
      node.setAttribValue( 0, Integer.toString( XUnreliableServiceServlet.FOURTH_RESPONSE ).toString() );
      sp.setCallbackObject( this );
      Object result = node.get();
      assertTrue( result != null );
      // If the request just happened to succeed then the next request should
      // fail as it can't be the fourth request
      if ( !( result instanceof CallbackToken ) )
        result = node.get();
      assertTrue( result instanceof CallbackToken );

      callbackToken = ( ( CallbackToken )result ).getToken();
      assertTrue( callbackToken >= 0 );
      while ( ( callbackToken >= 0 ) || ( sp.getNumStoredCalls() > 0 ) ) {
        Thread.currentThread().sleep( 100 );
        if ( new Date().getTime() > endTime )
          break;
      }
      assertTrue( callbackToken == -1 );
    }
    catch ( Exception e ) {
      e.printStackTrace();
      assertTrue( false );
    }
  }

  public void callCompleted( int token, Object response, XmlElement request )
  {
    System.out.println( "job token completed:" + token );
    if ( token == callbackToken )
      callbackToken = -1;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.