Search in sources :

Example 21 with MvpView

use of com.hannesdorfmann.mosby3.mvp.MvpView in project mosby by sockeqwe.

the class ActivityMvpViewStateDelegateImplTestNew method appStartAfterProcessDeathAndViewStateRecreationFromBundle.

@Test
public void appStartAfterProcessDeathAndViewStateRecreationFromBundle() {
    ActivityMvpViewStateDelegateImpl<MvpView, MvpPresenter<MvpView>, ViewState<MvpView>> delegate = new ActivityMvpViewStateDelegateImpl<>(activity, callback, true);
    Mockito.doAnswer(new Answer() {

        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            viewState = Mockito.spy(new SimpleRestorableViewState());
            return viewState;
        }
    }).when(callback).createViewState();
    Bundle bundle = BundleMocker.create();
    bundle.putString(ActivityMvpViewStateDelegateImpl.KEY_MOSBY_VIEW_ID, "123456789");
    startActivity(delegate, bundle, 1, 1, 1, 1, 1, 1, false, 1, 0, 1);
}
Also used : Answer(org.mockito.stubbing.Answer) MvpView(com.hannesdorfmann.mosby3.mvp.MvpView) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Bundle(android.os.Bundle) MvpPresenter(com.hannesdorfmann.mosby3.mvp.MvpPresenter) ViewState(com.hannesdorfmann.mosby3.mvp.viewstate.ViewState) Test(org.junit.Test)

Example 22 with MvpView

use of com.hannesdorfmann.mosby3.mvp.MvpView in project mosby by sockeqwe.

the class ActivityMvpViewStateDelegateImplTestNew method appStartWithScreenOrientationChangeAndFinallyFinishing.

@Test
public void appStartWithScreenOrientationChangeAndFinallyFinishing() {
    ActivityMvpViewStateDelegateImpl<MvpView, MvpPresenter<MvpView>, ViewState<MvpView>> delegate = new ActivityMvpViewStateDelegateImpl<>(activity, callback, true);
    startActivity(delegate, null, 1, 1, 1, 1, 1, 0, null, 0, 1, 0);
    Bundle bundle = BundleMocker.create();
    finishActivity(delegate, bundle, 1, 0, true, false);
    startActivity(delegate, bundle, 1, 2, 2, 1, 2, 1, true, 1, 1, 1);
    finishActivity(delegate, bundle, 2, 1, false, true);
}
Also used : MvpView(com.hannesdorfmann.mosby3.mvp.MvpView) Bundle(android.os.Bundle) MvpPresenter(com.hannesdorfmann.mosby3.mvp.MvpPresenter) ViewState(com.hannesdorfmann.mosby3.mvp.viewstate.ViewState) Test(org.junit.Test)

Example 23 with MvpView

use of com.hannesdorfmann.mosby3.mvp.MvpView in project mosby by sockeqwe.

the class FragmentMvpViewStateDelegateImplTest method dontKeepPresenterWithSecondFragmentInPresenterManager.

/**
 * Checks if two Fragments one that keeps presenter, the other who doesn't keep presenter during
 * screen orientation changes work properly
 *
 * https://github.com/sockeqwe/mosby/issues/231
 */
@Test
public void dontKeepPresenterWithSecondFragmentInPresenterManager() {
    MvpView view1 = new MvpView() {
    };
    ViewState<MvpView> viewState1 = Mockito.mock(ViewState.class);
    MvpPresenter<MvpView> presenter1 = Mockito.mock(MvpPresenter.class);
    PartialMvpViewStateDelegateCallbackImpl callback1 = Mockito.spy(PartialMvpViewStateDelegateCallbackImpl.class);
    Fragment fragment1 = PowerMockito.mock(Fragment.class);
    Mockito.doCallRealMethod().when(callback1).setPresenter(presenter1);
    Mockito.doCallRealMethod().when(callback1).getPresenter();
    Mockito.doCallRealMethod().when(callback1).setViewState(viewState1);
    Mockito.doCallRealMethod().when(callback1).getViewState();
    Mockito.when(callback1.getMvpView()).thenReturn(view1);
    Mockito.when(fragment1.getActivity()).thenReturn(activity);
    Mockito.when(callback1.createPresenter()).thenReturn(presenter1);
    Mockito.when(callback1.createViewState()).thenReturn(viewState1);
    FragmentMvpViewStateDelegateImpl<MvpView, MvpPresenter<MvpView>, ViewState<MvpView>> keepDelegate = new FragmentMvpViewStateDelegateImpl<>(fragment1, callback1, true, false);
    startFragment(keepDelegate, null);
    delegate = new FragmentMvpViewStateDelegateImpl<>(fragment, callback, false, false);
    startFragment(null, 1, 1, 1, 1, 1, 0, null, 0, 1, 0);
    Bundle bundle = BundleMocker.create();
    finishFragment(bundle, 1, 1, true, false);
    startFragment(null, 2, 2, 2, 2, 2, 0, null, 0, 2, 0);
    finishFragment(bundle, 2, 2, false, true);
    finishFragment(keepDelegate, BundleMocker.create());
}
Also used : MvpView(com.hannesdorfmann.mosby3.mvp.MvpView) Bundle(android.os.Bundle) MvpPresenter(com.hannesdorfmann.mosby3.mvp.MvpPresenter) ViewState(com.hannesdorfmann.mosby3.mvp.viewstate.ViewState) Fragment(android.support.v4.app.Fragment) Test(org.junit.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Example 24 with MvpView

use of com.hannesdorfmann.mosby3.mvp.MvpView in project mosby by sockeqwe.

the class ActivityMvpDelegateImplTest method appStartFinishing.

@Test
public void appStartFinishing() {
    ActivityMvpDelegateImpl<MvpView, MvpPresenter<MvpView>> delegate = new ActivityMvpDelegateImpl<>(activity, callback, true);
    startActivity(delegate, null, 1, 1, 1);
    Bundle bundle = BundleMocker.create();
    finishActivity(delegate, bundle, false, 1, 1, false, true);
}
Also used : MvpView(com.hannesdorfmann.mosby3.mvp.MvpView) Bundle(android.os.Bundle) MvpPresenter(com.hannesdorfmann.mosby3.mvp.MvpPresenter) Test(org.junit.Test)

Example 25 with MvpView

use of com.hannesdorfmann.mosby3.mvp.MvpView in project mosby by sockeqwe.

the class PresenterManagerTest method putGetRemovePresenter.

@Test
public void putGetRemovePresenter() {
    Activity activity = Mockito.mock(Activity.class);
    Application application = Mockito.mock(Application.class);
    Mockito.when(activity.getApplication()).thenReturn(application);
    MvpPresenter<MvpView> presenter = new MvpPresenter<MvpView>() {

        @Override
        public void attachView(MvpView view) {
        }

        @Override
        public void detachView(boolean retainInstance) {
        }

        @Override
        public void detachView() {
        }

        @Override
        public void destroy() {
        }
    };
    String viewId = "123";
    Assert.assertNull(PresenterManager.getPresenter(activity, viewId));
    PresenterManager.putPresenter(activity, viewId, presenter);
    Assert.assertTrue(presenter == PresenterManager.getPresenter(activity, viewId));
    PresenterManager.remove(activity, viewId);
    Assert.assertNull(PresenterManager.getPresenter(activity, viewId));
}
Also used : MvpView(com.hannesdorfmann.mosby3.mvp.MvpView) MvpPresenter(com.hannesdorfmann.mosby3.mvp.MvpPresenter) Activity(android.app.Activity) Application(android.app.Application) Test(org.junit.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Aggregations

MvpView (com.hannesdorfmann.mosby3.mvp.MvpView)21 MvpPresenter (com.hannesdorfmann.mosby3.mvp.MvpPresenter)18 Test (org.junit.Test)15 Bundle (android.os.Bundle)10 ViewState (com.hannesdorfmann.mosby3.mvp.viewstate.ViewState)9 Application (android.app.Application)7 Before (org.junit.Before)6 Fragment (android.support.v4.app.Fragment)4 FragmentActivity (android.support.v4.app.FragmentActivity)4 View (android.view.View)4 Activity (android.app.Activity)3 RestorableViewState (com.hannesdorfmann.mosby3.mvp.viewstate.RestorableViewState)3 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)3 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 InvocationOnMock (org.mockito.invocation.InvocationOnMock)2 Answer (org.mockito.stubbing.Answer)2 Object (org.omg.CORBA.Object)2 Parcelable (android.os.Parcelable)1 RestorableParcelableViewState (com.hannesdorfmann.mosby3.mvp.viewstate.RestorableParcelableViewState)1