package com.example.mock; import android.support.annotation.DrawableRes; import com.example.BuildConfig; import com.example.R; import com.example.model.api.ImagesData; import com.example.model.api.ShotResponse; import com.example.networking.RestService; import retrofit2.mock.BehaviorDelegate; import retrofit2.mock.MockRetrofit; import rx.Single; import java.util.ArrayList; import java.util.List; /** * Retrofit 2 mock mode. See https://youtu.be/t34AQlblSeE?t=53m32s for details or the u2020 project (https://github.com/JakeWharton/u2020). */ public class MockRestService implements RestService { private final BehaviorDelegate<RestService> delegate; public MockRestService(MockRetrofit mockRetrofit) { this.delegate = mockRetrofit.create(RestService.class); } @Override public Single<List<ShotResponse>> getShots() { return delegate.returningResponse(getShotResponsesList()).getShots(); } @SuppressWarnings("checkstyle:magicnumber") private List<ShotResponse> getShotResponsesList() { List<ShotResponse> shotResponses = new ArrayList<>(); ImagesData imagesData = new ImagesData(getLocalImageUri(R.drawable.dummy_shot_image)); ShotResponse shotResponse = new ShotResponse("title", imagesData); for (int i = 0; i < 50; i++) { shotResponses.add(shotResponse); } return shotResponses; } private String getLocalImageUri(@DrawableRes int drawableResourceId) { return "android.resource://" + BuildConfig.APPLICATION_ID + "/" + drawableResourceId; } }