package ru.vyarus.guice.ext.predestroy;
import com.google.inject.Guice;
import com.google.inject.Injector;
import org.junit.Before;
import org.junit.Test;
import ru.vyarus.guice.ext.ExtAnnotationsModule;
import ru.vyarus.guice.ext.managed.destroyable.Destroyable;
import ru.vyarus.guice.ext.managed.destroyable.DestroyableManager;
import static org.junit.Assert.assertEquals;
/**
* @author Vyacheslav Rusakov
* @since 30.06.2014
*/
public class DestroyableTest {
Injector injector;
DestroyableManager manager;
@Before
public void setUp() throws Exception {
injector = Guice.createInjector(new ExtAnnotationsModule());
manager = injector.getInstance(DestroyableManager.class);
}
@Test
public void testCall() throws Exception {
Bean bean = injector.getInstance(Bean.class);
manager.destroy();
assertEquals(1, bean.counter);
}
public static class Bean implements Destroyable {
int counter;
@Override
public void preDestroy() throws Exception {
counter++;
}
}
}