diff options
author | Brad Ebinger <breadley@google.com> | 2019-01-31 12:40:25 -0800 |
---|---|---|
committer | Brad Ebinger <breadley@google.com> | 2019-01-31 13:03:05 -0800 |
commit | 757882f2c2ed7535b81bf4e4950ce278a808a6b7 (patch) | |
tree | 095a3765626c60ee6c0fd777356ff2c47300cf0c | |
parent | 72d7bcb80b65a98a3bf5cad5804a19a5eff83516 (diff) | |
download | ims-757882f2c2ed7535b81bf4e4950ce278a808a6b7.tar.gz |
Move to Excutor interface to spawn threads for testing
When creating a new thread in ImsManager to perform
ImsConfig updates, wrap creating the new thread in an
executor so it can be overriden to be single threaded
when testing.
Bug: 123641963
Test: atest FrameworksTelephonyTests:ImsManagerTest
Change-Id: Ic3d5d2f18a91903771f8397f78a8eafdf53889de
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index 1bc95f0e..b42f3b71 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -371,6 +371,16 @@ public class ImsManager { } } + + @VisibleForTesting + public interface ExecutorFactory { + void executeRunnable(Runnable runnable); + } + + // Replaced with single-threaded executor for testing. + @VisibleForTesting + public ExecutorFactory mExecutorFactory = runnable -> new Thread(runnable).start(); + private static HashMap<Integer, ImsManager> sImsManagerInstances = new HashMap<Integer, ImsManager>(); @@ -1143,7 +1153,7 @@ public class ImsManager { private void setWfcModeInternal(int wfcMode) { final int value = wfcMode; - Thread thread = new Thread(() -> { + mExecutorFactory.executeRunnable(() -> { try { getConfigInterface().setConfig( ProvisioningManager.KEY_VOICE_OVER_WIFI_MODE_OVERRIDE, value); @@ -1151,7 +1161,6 @@ public class ImsManager { // do nothing } }); - thread.start(); } /** @@ -1213,7 +1222,7 @@ public class ImsManager { final int value = enabled ? ProvisioningManager.PROVISIONING_VALUE_ENABLED : ProvisioningManager.PROVISIONING_VALUE_DISABLED; - Thread thread = new Thread(() -> { + mExecutorFactory.executeRunnable(() -> { try { getConfigInterface().setConfig( ProvisioningManager.KEY_VOICE_OVER_WIFI_ROAMING_ENABLED_OVERRIDE, value); @@ -1221,7 +1230,6 @@ public class ImsManager { // do nothing } }); - thread.start(); } /** @@ -2107,7 +2115,7 @@ public class ImsManager { private void setRttConfig(boolean enabled) { final int value = enabled ? ProvisioningManager.PROVISIONING_VALUE_ENABLED : ProvisioningManager.PROVISIONING_VALUE_DISABLED; - Thread thread = new Thread(() -> { + mExecutorFactory.executeRunnable(() -> { try { Log.i(ImsManager.class.getSimpleName(), "Setting RTT enabled to " + enabled); getConfigInterface().setProvisionedValue( @@ -2117,7 +2125,6 @@ public class ImsManager { + enabled + ": " + e); } }); - thread.start(); } public boolean queryMmTelCapability( |