public
class
RemoteDataSourceTest {
List<Topics> mResultList;
MockWebServer mMockWebServer;
TestSubscriber<List<Topics>> mSubscriber;
@Before
public
void
setUp() {
Topics topics =
new
Topics(
1
,
"Discern The Beach"
);
Topics topicsTwo =
new
Topics(
2
,
"Discern The Football Player"
);
mResultList =
new
ArrayList();
mResultList.add(topics);
mResultList.add(topicsTwo);
mMockWebServer =
new
MockWebServer();
mSubscriber =
new
TestSubscriber<>();
}
@Test
public
void
serverCallWithError() {
String url =
"dfdf/"
;
mMockWebServer.enqueue(
new
MockResponse().setBody(
new
Gson().toJson(mResultList)));
Retrofit retrofit =
new
Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(mMockWebServer.url(url))
.build();
RemoteDataSource remoteDataSource =
new
RemoteDataSource(retrofit);
remoteDataSource.getTopicsRx().subscribe(mSubscriber);
mSubscriber.assertNoErrors();
mSubscriber.assertCompleted();
}
@Test
public
void
severCallWithSuccessful() {
mMockWebServer.enqueue(
new
MockResponse().setBody(
new
Gson().toJson(mResultList)));
Retrofit retrofit =
new
Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(mMockWebServer.url(url))
.build();
RemoteDataSource remoteDataSource =
new
RemoteDataSource(retrofit);
remoteDataSource.getTopicsRx().subscribe(mSubscriber);
mSubscriber.assertNoErrors();
mSubscriber.assertCompleted();
}
}