示例#1
0
  private Factory createMock() throws Exception {
    final MethodInterceptor interceptor =
        new MethodInterceptor() {
          public Object intercept(
              final Object obj, final Method method, final Object[] args, final MethodProxy proxy)
              throws Throwable {
            return proxy.invokeSuper(obj, args);
          }
        };

    final Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(ArrayList.class);
    enhancer.setCallbackType(MethodInterceptor.class);

    final Class<?> mockClass = enhancer.createClass();

    Enhancer.registerCallbacks(mockClass, new Callback[] {interceptor});

    final Factory f = (Factory) ClassInstantiatorFactory.getInstantiator().newInstance(mockClass);

    f.getCallback(0);

    return f;
  }