package com.ushahidi.platform.mobile.app.presentation.presenter; import com.ushahidi.platform.mobile.app.BuildConfig; import com.ushahidi.platform.mobile.app.DefaultConfig; import com.ushahidi.platform.mobile.app.domain.usecase.deployment.DeleteDeploymentUsecase; import com.ushahidi.platform.mobile.app.domain.usecase.form.DeleteFormUsecase; import com.ushahidi.platform.mobile.app.domain.usecase.geojson.DeleteGeoJsonUsecase; import com.ushahidi.platform.mobile.app.domain.usecase.post.DeletePostUsecase; import com.ushahidi.platform.mobile.app.domain.usecase.tag.DeleteTagUsecase; import com.ushahidi.platform.mobile.app.domain.usecase.user.DeleteUserProfileUsecase; import com.ushahidi.platform.mobile.app.presentation.model.mapper.DeploymentModelDataMapper; import com.ushahidi.platform.mobile.app.presentation.presenter.deployment.DeleteDeploymentPresenter; import com.ushahidi.platform.mobile.app.presentation.view.deployment.DeleteDeploymentView; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.annotation.Config; import android.content.Context; import rx.Subscriber; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.any; import static org.mockito.Mockito.verify; /** * Tests {@link DeleteDeploymentPresenter} * * @author Ushahidi Team <team@ushahidi.com> */ @RunWith(RobolectricGradleTestRunner.class) @Config(sdk = DefaultConfig.EMULATE_SDK, constants = BuildConfig.class) public class DeleteDeploymentPresenterTest { private DeleteDeploymentPresenter mDeleteDeploymentPresenter; @Mock private Context mMockContext; @Mock private DeleteDeploymentView mMockDeleteDeploymentView; @Mock private DeleteDeploymentUsecase mMockDeleteDeploymentUsecase; @Mock private DeleteFormUsecase mMockDeleteFormUsecase; @Mock private DeleteGeoJsonUsecase mMockDeleteGeoJsonUsecase; @Mock private DeletePostUsecase mMockDeletePostUsecase; @Mock private DeleteTagUsecase mMockDeleteTagUsecase; @Mock private DeleteUserProfileUsecase mMockDeleteUserProfileUsecase; @Mock private DeploymentModelDataMapper mMockDeploymentDataMapper; @Before public void setUp() { MockitoAnnotations.initMocks(this); mDeleteDeploymentPresenter = new DeleteDeploymentPresenter(mMockDeleteDeploymentUsecase, mMockDeleteFormUsecase, mMockDeleteGeoJsonUsecase, mMockDeletePostUsecase, mMockDeleteTagUsecase, mMockDeleteUserProfileUsecase); mDeleteDeploymentPresenter.setView(mMockDeleteDeploymentView); } @Test public void testDeploymentDeletion() { given(mMockDeleteDeploymentView.getAppContext()).willReturn(mMockContext); mDeleteDeploymentPresenter.deleteDeployment(1l); verify(mMockDeleteDeploymentUsecase).setDeploymentId(1l); verify(mMockDeleteDeploymentUsecase).execute(any(Subscriber.class)); } }