package com.github.bjuvensjo.rsimulator.aop;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.matcher.Matchers;
public class GuiceAopAllianceSimulatorTest {
@Inject
private Foo foo;
public static class DummyFoo implements Foo {
@Override
public String sayHello(String msg) {
return null;
}
@Override
public String doThrow(String msg) throws BarException {
return null;
}
@Override
public void doNotReturn(String msg) {
}
}
@Before
public void init() {
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(Foo.class).to(DummyFoo.class);
AopAllianceSimulator aopAllianceSimulator = new AopAllianceSimulatorImpl();
aopAllianceSimulator.setRootPath(GuiceAopAllianceSimulatorTest.class);
bindInterceptor(Matchers.subclassesOf(Foo.class), Matchers.any(), aopAllianceSimulator);
}
});
injector.injectMembers(this);
}
@Test
public void test() {
String msg = foo.sayHello("Hello from " + getClass().getName());
assertEquals("Hello " + getClass().getName() + " from AopAllianceSimulator", msg);
}
}