Add copy builder to TimeZoneCapabilities.
This method is added to change capabilities more easily in Robolectric's TimeManager shadow class. Bug: 159891384 Test: atest core/tests/coretests/src/android/app/time/* Change-Id: I10b964666e93af9c2c4ead50088773a77521db65
This commit is contained in:
@@ -207,6 +207,17 @@ public final class TimeZoneCapabilities implements Parcelable {
|
||||
mUserHandle = Objects.requireNonNull(userHandle);
|
||||
}
|
||||
|
||||
public Builder(@NonNull TimeZoneCapabilities capabilitiesToCopy) {
|
||||
Objects.requireNonNull(capabilitiesToCopy);
|
||||
mUserHandle = capabilitiesToCopy.mUserHandle;
|
||||
mConfigureAutoDetectionEnabledCapability =
|
||||
capabilitiesToCopy.mConfigureAutoDetectionEnabledCapability;
|
||||
mConfigureGeoDetectionEnabledCapability =
|
||||
capabilitiesToCopy.mConfigureGeoDetectionEnabledCapability;
|
||||
mSuggestManualTimeZoneCapability =
|
||||
capabilitiesToCopy.mSuggestManualTimeZoneCapability;
|
||||
}
|
||||
|
||||
/** Sets the state for the automatic time zone detection enabled config. */
|
||||
public Builder setConfigureAutoDetectionEnabledCapability(@CapabilityState int value) {
|
||||
this.mConfigureAutoDetectionEnabledCapability = value;
|
||||
|
||||
@@ -20,6 +20,8 @@ import static android.app.time.Capabilities.CAPABILITY_NOT_ALLOWED;
|
||||
import static android.app.time.Capabilities.CAPABILITY_POSSESSED;
|
||||
import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
@@ -157,4 +159,60 @@ public class TimeZoneCapabilitiesTest {
|
||||
|
||||
assertNull(capabilities.tryApplyConfigChanges(oldConfiguration, configChange));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void copyBuilder_copiesAllFields() {
|
||||
TimeZoneCapabilities capabilities = new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
|
||||
.setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.build();
|
||||
|
||||
{
|
||||
TimeZoneCapabilities updatedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(capabilities)
|
||||
.setConfigureAutoDetectionEnabledCapability(CAPABILITY_POSSESSED)
|
||||
.build();
|
||||
TimeZoneCapabilities expectedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
|
||||
.setConfigureAutoDetectionEnabledCapability(CAPABILITY_POSSESSED)
|
||||
.setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.build();
|
||||
|
||||
assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
|
||||
}
|
||||
|
||||
{
|
||||
TimeZoneCapabilities updatedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(capabilities)
|
||||
.setConfigureGeoDetectionEnabledCapability(CAPABILITY_POSSESSED)
|
||||
.build();
|
||||
|
||||
TimeZoneCapabilities expectedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
|
||||
.setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setConfigureGeoDetectionEnabledCapability(CAPABILITY_POSSESSED)
|
||||
.setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.build();
|
||||
|
||||
assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
|
||||
}
|
||||
|
||||
{
|
||||
TimeZoneCapabilities updatedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(capabilities)
|
||||
.setSuggestManualTimeZoneCapability(CAPABILITY_POSSESSED)
|
||||
.build();
|
||||
|
||||
TimeZoneCapabilities expectedCapabilities =
|
||||
new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
|
||||
.setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
|
||||
.setSuggestManualTimeZoneCapability(CAPABILITY_POSSESSED)
|
||||
.build();
|
||||
|
||||
assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user