Use spy to inject the return value of a boolean resource

**Root cause**
The test was failing because it was not grabbing the boolean resource
from the values-mc999 folder. I'm not sure what changed in Robolectric
that causes it not able to find the resources based on the
qualifiers.

Bug: 279082331
Test: atest TopLevelAccessibilityPreferenceControllerTest
Change-Id: Ie738d1ada1a87b48f34efb7e0477c691c4d44d1e
This commit is contained in:
Chun-Ku Lin
2023-06-03 06:21:16 +00:00
parent aeb630b1f5
commit 7e868fa690

View File

@@ -21,24 +21,33 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
public class TopLevelAccessibilityPreferenceControllerTest {
private Context mContext;
private Resources mResources;
private TopLevelAccessibilityPreferenceController mController;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mContext = spy(ApplicationProvider.getApplicationContext());
mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);
mController = new TopLevelAccessibilityPreferenceController(mContext, "test_key");
}
@@ -48,8 +57,9 @@ public class TopLevelAccessibilityPreferenceControllerTest {
}
@Test
@Config(qualifiers = "mcc999")
public void getAvailabilityStatus_unsupportedWhenSet() {
when(mResources.getBoolean(R.bool.config_show_top_level_accessibility)).thenReturn(false);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
}