Add onPreferenceChange_update tests

Bug: 180688212
Test: atest -c Enable2gPreferenceControllerTest
Change-Id: Ie7bc7a49f2ce4d5e8b8d75914fa46b613569566f
diff --git a/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
index 9b9bb11..293a19d 100644
--- a/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
@@ -22,6 +22,8 @@
 
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
@@ -117,4 +119,27 @@
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
+
+    @Test
+    public void onPreferenceChange_update() {
+        // Set "Enable 2G" flag to "on"
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G)).thenReturn(
+                (long) (TelephonyManager.NETWORK_TYPE_BITMASK_GSM
+                        | TelephonyManager.NETWORK_TYPE_BITMASK_LTE));
+
+        // Setup state to allow disabling
+        doReturn(true).when(mTelephonyManager).isRadioInterfaceCapabilitySupported(
+                mTelephonyManager.CAPABILITY_ALLOWED_NETWORK_TYPES_USED);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
+                false);
+
+        // Disable 2G
+        boolean changed = mController.setChecked(false);
+        assertThat(changed).isEqualTo(true);
+
+        verify(mTelephonyManager, times(1)).setAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G,
+                TelephonyManager.NETWORK_TYPE_BITMASK_LTE);
+    }
 }