    1   /***
    2    *
    3    * Copyright 2004 Protique Ltd
    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.codehaus.activemq.util;
    19
    20  import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
    21  import junit.framework.TestCase;
    22
    23  /***
    24   * @version $Revision: 1.3 $
    25   */
    26  public class AsyncProxyTest extends TestCase {
    27
    28      public void testAsyncProxy() throws Exception {
    29          ExampleServer service = new ExampleServerImpl();
    30
    31          // thread pool to execute tasks in
    32          PooledExecutor executor = new PooledExecutor(1);
    33
    34          // async proxy
    35          ExampleServer proxy = (ExampleServer) AsyncProxy.createProxy(ExampleServer.class, service, executor);
    36
    37          // lets make an async call
    38          System.out.println("Making an async call from thread: " + Thread.currentThread());
    39          proxy.foo();
    40
    41          // wait a moment for async stuff
    42          Thread.sleep(1000);
    43
    44          assertEquals("Should have invoked foo by now", 1, service.getFooCount());
    45
    46          ExecutorHelper.stopExecutor(executor);
    47      }
    48  }