Merge "[Settings] Code Refactor for performance"
This commit is contained in:
@@ -23,8 +23,13 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
@@ -36,15 +41,27 @@ import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class SlotSimStatusTest {
|
||||
|
||||
private static final int SUB_ID_1 = 3;
|
||||
private static final int SUB_ID_2 = 8;
|
||||
|
||||
@Mock
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo1;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo2;
|
||||
@Mock
|
||||
private Executor mExecutor;
|
||||
@Mock
|
||||
private Lifecycle mLifecycle;
|
||||
@Captor
|
||||
private ArgumentCaptor<Runnable> mRunnableCaptor;
|
||||
|
||||
@@ -56,13 +73,20 @@ public class SlotSimStatusTest {
|
||||
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mockService(Context.TELEPHONY_SERVICE, TelephonyManager.class, mTelephonyManager);
|
||||
mockService(Context.TELEPHONY_SUBSCRIPTION_SERVICE, SubscriptionManager.class,
|
||||
mSubscriptionManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void size_returnNumberOfPhone_whenQuery() {
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
SlotSimStatus target = new SlotSimStatus(mContext);
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, null, null) {
|
||||
@Override
|
||||
protected void postValue(Long value) {}
|
||||
@Override
|
||||
protected void setValue(Long value) {}
|
||||
};
|
||||
|
||||
assertEquals(new Integer(target.size()), new Integer(2));
|
||||
}
|
||||
@@ -71,7 +95,12 @@ public class SlotSimStatusTest {
|
||||
public void size_returnNumberOfPhone_whenQueryInBackgroundThread() {
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, mExecutor);
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, mExecutor, mLifecycle) {
|
||||
@Override
|
||||
protected void postValue(Long value) {}
|
||||
@Override
|
||||
protected void setValue(Long value) {}
|
||||
};
|
||||
|
||||
verify(mExecutor).execute(mRunnableCaptor.capture());
|
||||
mRunnableCaptor.getValue().run();
|
||||
@@ -83,7 +112,12 @@ public class SlotSimStatusTest {
|
||||
public void getPreferenceOrdering_returnOrdering_whenQuery() {
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
SlotSimStatus target = new SlotSimStatus(mContext);
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, null, null) {
|
||||
@Override
|
||||
protected void postValue(Long value) {}
|
||||
@Override
|
||||
protected void setValue(Long value) {}
|
||||
};
|
||||
target.setBasePreferenceOrdering(30);
|
||||
|
||||
assertEquals(new Integer(target.getPreferenceOrdering(1)), new Integer(32));
|
||||
@@ -93,10 +127,36 @@ public class SlotSimStatusTest {
|
||||
public void getPreferenceKey_returnKey_whenQuery() {
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
SlotSimStatus target = new SlotSimStatus(mContext);
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, null, null) {
|
||||
@Override
|
||||
protected void postValue(Long value) {}
|
||||
@Override
|
||||
protected void setValue(Long value) {}
|
||||
};
|
||||
target.setBasePreferenceOrdering(50);
|
||||
|
||||
assertEquals(target.getPreferenceKey(1), "sim_status52");
|
||||
assertEquals(target.getPreferenceKey(1), "sim_status2");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubscriptionInfo_returnSubscriptionInfo_whenActive() {
|
||||
doReturn(SUB_ID_1).when(mSubscriptionInfo1).getSubscriptionId();
|
||||
doReturn(0).when(mSubscriptionInfo1).getSimSlotIndex();
|
||||
doReturn(SUB_ID_2).when(mSubscriptionInfo2).getSubscriptionId();
|
||||
doReturn(1).when(mSubscriptionInfo2).getSimSlotIndex();
|
||||
|
||||
doReturn(List.of(mSubscriptionInfo1, mSubscriptionInfo2))
|
||||
.when(mSubscriptionManager).getActiveSubscriptionInfoList();
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, null, null) {
|
||||
@Override
|
||||
protected void postValue(Long value) {}
|
||||
@Override
|
||||
protected void setValue(Long value) {}
|
||||
};
|
||||
|
||||
assertEquals(target.getSubscriptionInfo(1), mSubscriptionInfo2);
|
||||
}
|
||||
|
||||
private <T> void mockService(String serviceName, Class<T> serviceClass, T service) {
|
||||
|
Reference in New Issue
Block a user