Skip to content

Commit b1e7149

Browse files
Use Robolectric application context in repository tests
1 parent dbf051c commit b1e7149

File tree

3 files changed

+9
-19
lines changed

3 files changed

+9
-19
lines changed

app/src/test/java/com/d4rk/androidtutorials/java/data/repository/DefaultMainRepositoryApplyThemeSettingsTest.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
import android.content.SharedPreferences;
55

66
import androidx.appcompat.app.AppCompatDelegate;
7+
import androidx.preference.PreferenceManager;
78

89
import com.d4rk.androidtutorials.java.R;
910

1011
import org.junit.Test;
1112
import org.junit.runner.RunWith;
1213
import org.robolectric.RobolectricTestRunner;
14+
import org.robolectric.RuntimeEnvironment;
1315
import org.robolectric.annotation.Config;
1416

1517
import static org.junit.Assert.*;
16-
import static org.mockito.ArgumentMatchers.*;
17-
import static org.mockito.Mockito.*;
1818

1919
@RunWith(RobolectricTestRunner.class)
2020
@Config(manifest = Config.NONE, sdk = 33)
@@ -28,14 +28,9 @@ public class DefaultMainRepositoryApplyThemeSettingsTest {
2828
};
2929

3030
private DefaultMainRepository createRepository(String prefValue) {
31-
Context context = mock(Context.class);
32-
SharedPreferences prefs = mock(SharedPreferences.class);
33-
when(context.getApplicationContext()).thenReturn(context);
34-
when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(prefs);
35-
when(context.getPackageName()).thenReturn("com.d4rk.androidtutorials");
36-
when(context.getString(R.string.key_theme)).thenReturn("theme");
37-
when(context.getString(R.string.default_value_theme)).thenReturn("MODE_NIGHT_FOLLOW_SYSTEM");
38-
when(prefs.getString(eq("theme"), anyString())).thenReturn(prefValue);
31+
Context context = RuntimeEnvironment.getApplication();
32+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
33+
prefs.edit().clear().putString(context.getString(R.string.key_theme), prefValue).apply();
3934
return new DefaultMainRepository(context);
4035
}
4136

app/src/test/java/com/d4rk/androidtutorials/java/data/repository/DefaultMainRepositoryBuildShortcutIntentTest.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,22 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5-
import android.content.SharedPreferences;
65
import android.net.Uri;
76

87
import org.junit.Test;
98
import org.junit.runner.RunWith;
109
import org.robolectric.RobolectricTestRunner;
10+
import org.robolectric.RuntimeEnvironment;
1111
import org.robolectric.annotation.Config;
1212

1313
import static org.junit.Assert.*;
14-
import static org.mockito.ArgumentMatchers.*;
15-
import static org.mockito.Mockito.*;
1614

1715
@RunWith(RobolectricTestRunner.class)
1816
@Config(manifest = Config.NONE, sdk = 33)
1917
public class DefaultMainRepositoryBuildShortcutIntentTest {
2018

2119
private DefaultMainRepository createRepository() {
22-
Context context = mock(Context.class);
23-
SharedPreferences prefs = mock(SharedPreferences.class);
24-
when(context.getApplicationContext()).thenReturn(context);
25-
when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(prefs);
26-
when(context.getPackageName()).thenReturn("com.d4rk.androidtutorials");
20+
Context context = RuntimeEnvironment.getApplication();
2721
return new DefaultMainRepository(context);
2822
}
2923

app/src/test/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeRemoteDataSourceTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.android.volley.RequestQueue;
55
import com.android.volley.VolleyError;
66
import com.android.volley.toolbox.JsonObjectRequest;
7+
import com.android.volley.toolbox.JsonRequest;
78
import com.d4rk.androidtutorials.java.data.model.PromotedApp;
89

910
import org.json.JSONObject;
@@ -40,7 +41,7 @@ public void fetchPromotedAppsFiltersAndMapsResults() throws Exception {
4041
String json = "{\"data\":{\"apps\":[{\"name\":\"Name1\",\"packageName\":\"pkg1\",\"iconLogo\":\"icon1\"},{\"name\":\"Name2\",\"packageName\":\"com.d4rk.androidtutorials.other\",\"iconLogo\":\"icon2\"}]}}";
4142
JSONObject response = new JSONObject(json);
4243

43-
Field listenerField = Request.class.getDeclaredField("mListener");
44+
Field listenerField = JsonRequest.class.getDeclaredField("mListener");
4445
listenerField.setAccessible(true);
4546
@SuppressWarnings("unchecked")
4647
com.android.volley.Response.Listener<JSONObject> listener =

0 commit comments

Comments
 (0)