44import static org .junit .Assert .assertTrue ;
55import static org .mockito .Mockito .mock ;
66
7- import android .os .Looper ;
8-
97import com .android .volley .RequestQueue ;
108import com .d4rk .androidtutorials .java .data .model .PromotedApp ;
119
1210import org .json .JSONObject ;
1311import org .junit .Before ;
1412import org .junit .Test ;
1513
14+ import java .lang .reflect .Field ;
1615import java .lang .reflect .Method ;
1716import java .util .List ;
1817
@@ -23,17 +22,13 @@ public class DefaultHomeRemoteDataSourceTest {
2322
2423 @ Before
2524 public void setUp () throws Exception {
26- if (Looper .getMainLooper () == null ) {
27- try {
28- Method prepareMainLooper = Looper .class .getDeclaredMethod ("prepareMainLooper" );
29- prepareMainLooper .setAccessible (true );
30- prepareMainLooper .invoke (null );
31- } catch (Exception ignored ) {
32- Looper .prepare ();
33- }
34- }
35- RequestQueue queue = mock (RequestQueue .class );
36- dataSource = new DefaultHomeRemoteDataSource (queue , "https://example.com" );
25+ dataSource = mock (DefaultHomeRemoteDataSource .class );
26+ Field queueField = DefaultHomeRemoteDataSource .class .getDeclaredField ("requestQueue" );
27+ queueField .setAccessible (true );
28+ queueField .set (dataSource , mock (RequestQueue .class ));
29+ Field urlField = DefaultHomeRemoteDataSource .class .getDeclaredField ("apiUrl" );
30+ urlField .setAccessible (true );
31+ urlField .set (dataSource , "https://example.com" );
3732 parseMethod = DefaultHomeRemoteDataSource .class .getDeclaredMethod ("parseResponse" , JSONObject .class );
3833 parseMethod .setAccessible (true );
3934 }
0 commit comments