1 16 17 package com.google.inject; 18 19 import static com.google.inject.matcher.Matchers.any; 20 import junit.framework.TestCase; 21 import org.aopalliance.intercept.MethodInterceptor; 22 import org.aopalliance.intercept.MethodInvocation; 23 24 27 public class IntegrationTest extends TestCase { 28 29 public void testIntegration() throws CreationException { 30 CountingInterceptor counter = new CountingInterceptor(); 31 32 BinderImpl binder = new BinderImpl(); 33 binder.bind(Foo.class); 34 binder.bindInterceptor(any(), any(), counter); 35 Injector injector = binder.createInjector(); 36 37 Foo foo = injector.getInstance(Key.get(Foo.class)); 38 foo.foo(); 39 assertTrue(foo.invoked); 40 assertEquals(1, counter.count); 41 42 foo = injector.getInstance(Foo.class); 43 foo.foo(); 44 assertTrue(foo.invoked); 45 assertEquals(2, counter.count); 46 } 47 48 static class Foo { 49 boolean invoked; 50 public void foo() { 51 invoked = true; 52 } 53 } 54 55 static class CountingInterceptor implements MethodInterceptor { 56 57 int count; 58 59 public Object invoke(MethodInvocation methodInvocation) throws Throwable { 60 count++; 61 return methodInvocation.proceed(); 62 } 63 } 64 65 } 66 | Popular Tags |