Skip to content

Commit

Permalink
Modify UseCaseTest to work with a delayed Observable
Browse files Browse the repository at this point in the history
  • Loading branch information
jordifierro committed Apr 27, 2016
1 parent 13de9cc commit 3d6fe70
Showing 1 changed file with 10 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,19 @@

import com.fernandocejas.android10.sample.domain.executor.PostExecutionThread;
import com.fernandocejas.android10.sample.domain.executor.ThreadExecutor;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import java.util.Arrays;
import java.util.concurrent.TimeUnit;

import rx.Observable;
import rx.Subscriber;
import rx.observers.TestSubscriber;
import rx.schedulers.TestScheduler;

import java.util.Arrays;
import rx.schedulers.Schedulers;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
Expand All @@ -47,21 +50,19 @@ public void setUp() {
@Test
@SuppressWarnings("unchecked")
public void testBuildUseCaseObservableReturnCorrectResult() {
given(mockPostExecutionThread.getScheduler()).willReturn(Schedulers.immediate());
TestSubscriber<Integer> testSubscriber = new TestSubscriber<>();
TestScheduler testScheduler = new TestScheduler();
given(mockPostExecutionThread.getScheduler()).willReturn(testScheduler);

useCase.execute(testSubscriber);
testScheduler.triggerActions();
testSubscriber.awaitTerminalEvent();

testSubscriber.assertReceivedOnNext(Arrays.asList(1, 2, 3));
}

@Test
public void testSubscriptionWhenExecutingUseCase() {
given(mockPostExecutionThread.getScheduler()).willReturn(Schedulers.immediate());
TestSubscriber<Integer> testSubscriber = new TestSubscriber<>();
TestScheduler testScheduler = new TestScheduler();
given(mockPostExecutionThread.getScheduler()).willReturn(testScheduler);

useCase.execute(testSubscriber);
assertThat(useCase.isUnsubscribed(), is(false));
Expand All @@ -79,7 +80,7 @@ protected UseCaseTestClass(
}

@Override protected Observable buildUseCaseObservable() {
return Observable.just(1, 2, 3);
return Observable.just(1, 2, 3).delay(10, TimeUnit.MILLISECONDS);
}

@Override public void execute(Subscriber UseCaseSubscriber) {
Expand Down

0 comments on commit 3d6fe70

Please sign in to comment.