package com.ushahidi.platform.mobile.app.domain.usecase.deployment; import com.addhen.android.raiburari.domain.executor.PostExecutionThread; import com.addhen.android.raiburari.domain.executor.ThreadExecutor; import com.ushahidi.platform.mobile.app.BuildConfig; import com.ushahidi.platform.mobile.app.DefaultConfig; import com.ushahidi.platform.mobile.app.domain.repository.DeploymentRepository; 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 static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; /** * Tests {@link GetDeploymentUsecase} * * @author Ushahidi Team <team@ushahidi.com> */ @RunWith(RobolectricGradleTestRunner.class) @Config(sdk = DefaultConfig.EMULATE_SDK, constants = BuildConfig.class) public class FetchDeploymentUsecaseTest { private static final String DUMMY_DEPLOYMENT_URL = "http://ushahidi-platform-api-release.herokuapp.com/"; @Mock private ThreadExecutor mockThreadExecutor; @Mock private PostExecutionThread mockPostExecutionThread; @Mock private DeploymentRepository mockDeploymentRepository; private FetchDeploymentUsecase mFetchDeploymentUsecase; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mFetchDeploymentUsecase = new FetchDeploymentUsecase(mockDeploymentRepository, mockThreadExecutor, mockPostExecutionThread); mFetchDeploymentUsecase.setDeploymentUrl(DUMMY_DEPLOYMENT_URL); } @Test public void shouldSuccessfullyDeleteDeployment() { mFetchDeploymentUsecase.buildUseCaseObservable(); verify(mockDeploymentRepository).getDeploymentEntity(DUMMY_DEPLOYMENT_URL); verifyNoMoreInteractions(mockDeploymentRepository); verifyZeroInteractions(mockPostExecutionThread); verifyZeroInteractions(mockThreadExecutor); } }