package com.example.networking;
import com.example.App;
import com.example.model.api.ShotResponse;
import com.example.util.MockWebServerHelper;
import com.example.util.PreconfiguredRobolectricTestRunner;
import okhttp3.mockwebserver.MockWebServer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.IOException;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(PreconfiguredRobolectricTestRunner.class)
public class RestServiceIntegrationTest {
private MockWebServer mockWebServer;
private RestService restService;
private final MockWebServerHelper mockWebServerHelper = new MockWebServerHelper();
@Before
public void beforeEveryTest() throws IOException {
mockWebServer = mockWebServerHelper.initMockWebServer();
restService = App.getApplicationComponent().restService();
}
@After
public void afterEveryTest() throws IOException {
mockWebServer.shutdown();
}
@Test
public void shot_request_test_network_layer() throws IOException {
mockWebServerHelper.enqueueJsonResponseFromFileForMockWebServer(mockWebServer, "shots_response.json");
List<ShotResponse> shotResponseList = restService.getShots().toBlocking().value();
assertThat(shotResponseList.get(0).getTitle()).isEqualTo("2017 Wallpaper");
assertThat(shotResponseList.get(0).getImagesData().getTeaserImageUrl())
.isEqualTo("https://d13yacurqjgara.cloudfront.net/users/538946/screenshots/3175656/2017_teaser.png");
}
}