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
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 @@
             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 @@
 
     @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 @@
 
     @Test
     public void getProperties() {
+        // api only present on R+
+        assumeTrue(SdkLevel.isAtLeastR());
         Properties properties = DeviceConfig.getProperties(sNamespace, sKey);
         assertThat(properties.getString(sKey, null)).isNull();