@Test
public void downEventsAddition() {

    dispatchEvent(ON_CREATE);
    dispatchEvent(ON_START);
    final TestObserver observer1 = mock(TestObserver.class);
    final TestObserver observer3 = mock(TestObserver.class);
    final TestObserver observer2 = spy(new TestObserver() {
        @Override
        void onStop() {
            mRegistry.addObserver(observer3);
        }
    });
    mRegistry.addObserver(observer1);
    mRegistry.addObserver(observer2);
    InOrder orderVerifier = inOrder(observer1, observer2, observer3);
    dispatchEvent(ON_STOP);
    orderVerifier.verify(observer2).onStop();
    orderVerifier.verify(observer3).onCreate();
    orderVerifier.verify(observer1).onStop();
    dispatchEvent(ON_DESTROY);
    orderVerifier.verify(observer3).onDestroy();
    orderVerifier.verify(observer2).onDestroy();
    orderVerifier.verify(observer1).onDestroy();
}