diff options
author | Andrei Onea <andreionea@google.com> | 2022-07-19 14:22:06 +0000 |
---|---|---|
committer | Andrei Onea <andreionea@google.com> | 2022-07-19 14:31:41 +0000 |
commit | c8927342523b6a4440a4f9cf0ecb0d671bd35811 (patch) | |
tree | a11433bcd6d31f8b49f02d1daa502f816cccf19c | |
parent | 46c6d37aa623fe37264306331bfe6a7617a88b20 (diff) | |
download | modules-utils-c8927342523b6a4440a4f9cf0ecb0d671bd35811.tar.gz |
Fix ModulesUtilsTestingTests on Q devices
The DeviceConfig.getProperties API was introduced in R, so exclude
earlier builds from tests that use that API (as well as prevent that
method being mocked).
Test: atest ModulesUtilsTestingTests #on Q device
Bug: 239527036
Ignore-AOSP-First: Fix MTS tests
Change-Id: I548badcc3d45f59fb6287eadb66112087d5e15ac
-rw-r--r-- | java/com/android/modules/utils/testing/TestableDeviceConfig.java | 40 | ||||
-rw-r--r-- | javatests/com/android/modules/utils/testing/TestableDeviceConfigTest.java | 4 |
2 files changed, 25 insertions, 19 deletions
diff --git a/java/com/android/modules/utils/testing/TestableDeviceConfig.java b/java/com/android/modules/utils/testing/TestableDeviceConfig.java index 2012ad4..7177c74 100644 --- a/java/com/android/modules/utils/testing/TestableDeviceConfig.java +++ b/java/com/android/modules/utils/testing/TestableDeviceConfig.java @@ -130,27 +130,29 @@ public final class TestableDeviceConfig implements StaticMockFixture { String name = invocationOnMock.getArgument(1); return mKeyValueMap.get(getKey(namespace, name)); }).when(() -> DeviceConfig.getProperty(anyString(), anyString())); - - doAnswer((Answer<Properties>) invocationOnMock -> { - String namespace = invocationOnMock.getArgument(0); - final int varargStartIdx = 1; - Map<String, String> keyValues = new ArrayMap<>(); - if (invocationOnMock.getArguments().length == varargStartIdx) { - mKeyValueMap.entrySet().forEach(entry -> { - Pair<String, String> nameSpaceAndName = getNameSpaceAndName(entry.getKey()); - if (!nameSpaceAndName.first.equals(namespace)) { - return; + if (SdkLevel.isAtLeastR()) { + doAnswer((Answer<Properties>) invocationOnMock -> { + String namespace = invocationOnMock.getArgument(0); + final int varargStartIdx = 1; + Map<String, String> keyValues = new ArrayMap<>(); + if (invocationOnMock.getArguments().length == varargStartIdx) { + mKeyValueMap.entrySet().forEach(entry -> { + Pair<String, String> nameSpaceAndName = getNameSpaceAndName(entry.getKey()); + if (!nameSpaceAndName.first.equals(namespace)) { + return; + } + keyValues.put(nameSpaceAndName.second.toLowerCase(), entry.getValue()); + }); + } else { + for (int i = varargStartIdx; i < invocationOnMock.getArguments().length; ++i) { + String name = invocationOnMock.getArgument(i); + keyValues.put(name.toLowerCase(), + mKeyValueMap.get(getKey(namespace, name))); } - keyValues.put(nameSpaceAndName.second.toLowerCase(), entry.getValue()); - }); - } else { - for (int i = varargStartIdx; i < invocationOnMock.getArguments().length; ++i) { - String name = invocationOnMock.getArgument(i); - keyValues.put(name.toLowerCase(), mKeyValueMap.get(getKey(namespace, name))); } - } - return getProperties(namespace, keyValues); - }).when(() -> DeviceConfig.getProperties(anyString(), ArgumentMatchers.<String>any())); + return getProperties(namespace, keyValues); + }).when(() -> DeviceConfig.getProperties(anyString(), ArgumentMatchers.<String>any())); + } } /** diff --git a/javatests/com/android/modules/utils/testing/TestableDeviceConfigTest.java b/javatests/com/android/modules/utils/testing/TestableDeviceConfigTest.java index 1b2c844..ac0252e 100644 --- a/javatests/com/android/modules/utils/testing/TestableDeviceConfigTest.java +++ b/javatests/com/android/modules/utils/testing/TestableDeviceConfigTest.java @@ -127,6 +127,8 @@ public class TestableDeviceConfigTest { @Test public void getProperties_empty() { + // api only present on R+ + assumeTrue(SdkLevel.isAtLeastR()); String newKey = "key2"; String newValue = "value2"; DeviceConfig.setProperty(sNamespace, sKey, sValue, false); @@ -143,6 +145,8 @@ public class TestableDeviceConfigTest { @Test public void getProperties() { + // api only present on R+ + assumeTrue(SdkLevel.isAtLeastR()); Properties properties = DeviceConfig.getProperties(sNamespace, sKey); assertThat(properties.getString(sKey, null)).isNull(); |