[Settings] Improve PremiumSMS's auto test

Fix PremiumSMS's test case when config_show_premium_sms is false.

Bug: 240515161
Test: test cases and local testing
Change-Id: I3f1710bcf2c123553af7646c030bfe87f569324a
This commit is contained in:
Bonian Chen
2022-11-10 13:18:12 +00:00
parent 6e23499e98
commit dae659e358
3 changed files with 33 additions and 0 deletions

View File

@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
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 com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsControllerTest {
private Context mContext;
private Resources mResources;
private PremiumSmsController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);
mController = new PremiumSmsController(mContext, "key");
}
@Test
public void getAvailability_byDefault_shouldBeShown() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
@Config(qualifiers = "mcc999")
public void getAvailability_disabledByCarrier_returnUnavailable() {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void getAvailability_disabled_returnUnavailable() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse();
}
}

View File

@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
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 com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsScreenPreferenceControllerTest {
private Context mContext;
private Resources mResources;
private PremiumSmsScreenPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);
mController = new PremiumSmsScreenPreferenceController(mContext, "key");
}
@Test
public void getAvailability_byDefault_shouldBeShown() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
@Config(qualifiers = "mcc999")
public void getAvailability_disabledByCarrier_returnUnavailable() {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void getAvailability_disabled_returnUnavailable() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse();
}
}