package com.kickstarter.libs.rx.operators;
import com.google.gson.Gson;
import com.kickstarter.KSRobolectricTestCase;
import org.junit.Test;
import okhttp3.ResponseBody;
import retrofit2.Response;
import rx.Observable;
import rx.observers.TestSubscriber;
import rx.subjects.PublishSubject;
public final class ApiErrorOperatorTest extends KSRobolectricTestCase {
@Test
public void testErrorResponse() {
final Gson gson = new Gson();
final PublishSubject<Response<Integer>> response = PublishSubject.create();
final Observable<Integer> result = response.lift(Operators.apiError(gson));
final TestSubscriber<Integer> resultTest = new TestSubscriber<>();
result.subscribe(resultTest);
response.onNext(Response.error(400, ResponseBody.create(null, "")));
resultTest.assertNoValues();
assertEquals(1, resultTest.getOnErrorEvents().size());
}
@Test
public void testSuccessResponse() {
final Gson gson = new Gson();
final PublishSubject<Response<Integer>> response = PublishSubject.create();
final Observable<Integer> result = response.lift(Operators.apiError(gson));
final TestSubscriber<Integer> resultTest = new TestSubscriber<>();
result.subscribe(resultTest);
response.onNext(Response.success(42));
resultTest.assertValues(42);
resultTest.assertCompleted();
}
}