package proton.inject.observer;
import proton.inject.DefaultModule;
import proton.inject.Injector;
import proton.inject.MockContext;
import proton.inject.Proton;
import proton.inject.observer.event.OnCreateEvent;
import android.app.Application;
import android.test.AndroidTestCase;
import android.test.mock.MockApplication;
public class ObserverTest extends AndroidTestCase {
private Application mMockApplication;
private Injector mInjector;
@Override
protected void setUp() throws Exception {
super.setUp();
mMockApplication = new MockApplication();
Proton.initialize(mMockApplication, new DefaultModule() {
@Override
protected void configure() {
super.configure();
bind(Observer.class);
}
});
mInjector = Proton.getInjector(new MockContext(mMockApplication));
}
@Override
protected void tearDown() throws Exception {
Proton.destroy();
super.tearDown();
}
public void testFire() {
ObserverManager manager = mInjector.getInstance(ObserverManager.class);
Observer observer = mInjector.getInstance(Observer.class);
OnCreateEvent event = new OnCreateEvent(null);
manager.fire(event);
assertEquals(event, observer.event);
}
public static class Observer {
private OnCreateEvent event;
public void handle(@Observes OnCreateEvent event) {
this.event = event;
}
}
}