From 30d28b1cbf6baed3403d4f17ea3a3748e47e629e Mon Sep 17 00:00:00 2001 From: Nathalie Le Clair Date: Wed, 5 May 2021 13:44:35 +0200 Subject: [PATCH 1/2] Set config values explicitely in unit tests Fixes: 187275931 Test: atest Change-Id: Ie8a1707b760a157181100dc6a49b4a70ea5f096f --- .../com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java index 1ac01509bb6f0..d2bff3a259591 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java @@ -168,6 +168,8 @@ public class HdmiCecLocalDevicePlaybackTest { mPlaybackLogicalAddress = mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(); mHdmiControlService.getHdmiCecNetwork().addCecDevice(INFO_TV); mNativeWrapper.clearResultMessages(); + mHdmiCecLocalDevicePlayback.mPlaybackDeviceActionOnRoutingControl = + HdmiProperties.playback_device_action_on_routing_control_values.NONE; } @Test From ac0134bc53d063370d3c653947b09ad5cd357a13 Mon Sep 17 00:00:00 2001 From: Nathalie Le Clair Date: Thu, 6 May 2021 18:17:33 +0200 Subject: [PATCH 2/2] Reinitialize PowerManager in unit tests PowerManager keeps a cache of isInteractive(). Therefore only the first call to PowerManager#isInteractive() can be mocked; for the next calls, the cache will be used. To avoid using the cache and to mock every call of PowerManager#isInteractive, PowerManager needs to be reinitialized on every call of HdmiControlManager#getPowerManager(). Bug: 187415933 Test: atest Change-Id: I9374cadd4f6e861ccf248d5758a86133c0dea8cd --- .../android/server/hdmi/ActiveSourceActionTest.java | 13 ++++++++----- .../server/hdmi/ArcInitiationActionFromAvrTest.java | 13 ++++++++----- .../hdmi/ArcTerminationActionFromAvrTest.java | 13 ++++++++----- .../server/hdmi/DevicePowerStatusActionTest.java | 13 ++++++++----- .../android/server/hdmi/DeviceSelectActionTest.java | 5 ++--- .../android/server/hdmi/HdmiCecAtomLoggingTest.java | 8 +++++--- .../hdmi/HdmiCecLocalDeviceAudioSystemTest.java | 5 ++--- .../server/hdmi/HdmiCecLocalDevicePlaybackTest.java | 5 ++--- .../server/hdmi/HdmiCecLocalDeviceTvTest.java | 5 ++--- .../hdmi/HdmiCecPowerStatusControllerTest.java | 10 ++++++---- .../android/server/hdmi/HdmiControlServiceTest.java | 10 ++++++---- .../android/server/hdmi/OneTouchPlayActionTest.java | 13 ++++++++----- .../server/hdmi/PowerStatusMonitorActionTest.java | 13 ++++++++----- .../hdmi/SystemAudioAutoInitiationActionTest.java | 13 ++++++++----- 14 files changed, 81 insertions(+), 58 deletions(-) diff --git a/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java index c08857ca9bdca..6cc8d471f0f59 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/ActiveSourceActionTest.java @@ -68,10 +68,12 @@ public class ActiveSourceActionTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(mContextSpy) { @@ -97,7 +99,8 @@ public class ActiveSourceActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/ArcInitiationActionFromAvrTest.java b/services/tests/servicestests/src/com/android/server/hdmi/ArcInitiationActionFromAvrTest.java index ee9de07a15d27..97bd066be543a 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/ArcInitiationActionFromAvrTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/ArcInitiationActionFromAvrTest.java @@ -70,10 +70,12 @@ public class ArcInitiationActionFromAvrTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); HdmiControlService hdmiControlService = @@ -89,7 +91,8 @@ public class ArcInitiationActionFromAvrTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java b/services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java index d5df07102d73e..29c9b407d609a 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java @@ -71,10 +71,12 @@ public class ArcTerminationActionFromAvrTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); HdmiControlService hdmiControlService = @@ -85,7 +87,8 @@ public class ArcTerminationActionFromAvrTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java index 4f97c2660ba71..650ffe9abd4b6 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/DevicePowerStatusActionTest.java @@ -80,10 +80,12 @@ public class DevicePowerStatusActionTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(mContextSpy) { @@ -109,7 +111,8 @@ public class DevicePowerStatusActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionTest.java index 678f8b219e284..fa5cb67c573d2 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionTest.java @@ -103,8 +103,6 @@ public class DeviceSelectActionTest { Context context = InstrumentationRegistry.getTargetContext(); mMyLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(context, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mMyLooper)); mHdmiControlService = new HdmiControlService(InstrumentationRegistry.getTargetContext()) { @@ -129,7 +127,8 @@ public class DeviceSelectActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(context, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mMyLooper)); } }; diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecAtomLoggingTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecAtomLoggingTest.java index 45409c8091e7e..29f62b58746ed 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecAtomLoggingTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecAtomLoggingTest.java @@ -30,6 +30,7 @@ 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; import android.content.ContextWrapper; @@ -96,9 +97,10 @@ public class HdmiCecAtomLoggingTest { mContextSpy = spy(new ContextWrapper( InstrumentationRegistry.getInstrumentation().getTargetContext())); - PowerManager powerManager = new PowerManager( - mContextSpy, mIPowerManagerMock, mIThermalServiceMock, new Handler(mLooper)); - doReturn(powerManager).when(mContextSpy).getSystemService(Context.POWER_SERVICE); + + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mLooper))); doReturn(true).when(mIPowerManagerMock).isInteractive(); mHdmiControlServiceSpy = spy(new HdmiControlService(mContextSpy)); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java index 38a44c6c0d557..7911c409d7662 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java @@ -94,8 +94,6 @@ public class HdmiCecLocalDeviceAudioSystemTest { Context context = InstrumentationRegistry.getTargetContext(); mMyLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(context, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mMyLooper)); mHdmiControlService = new HdmiControlService(InstrumentationRegistry.getTargetContext()) { @@ -183,7 +181,8 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(context, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mMyLooper)); } }; diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java index d2bff3a259591..08d8f12decd71 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java @@ -92,8 +92,6 @@ public class HdmiCecLocalDevicePlaybackTest { Context context = InstrumentationRegistry.getTargetContext(); mMyLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(context, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mMyLooper)); mHdmiControlService = new HdmiControlService(InstrumentationRegistry.getTargetContext()) { @@ -140,7 +138,8 @@ public class HdmiCecLocalDevicePlaybackTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(context, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mMyLooper)); } }; diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java index 8ee983f7375fc..59711a62f3f34 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java @@ -86,8 +86,6 @@ public class HdmiCecLocalDeviceTvTest { Context context = InstrumentationRegistry.getTargetContext(); mMyLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(context, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mMyLooper)); mHdmiControlService = new HdmiControlService(InstrumentationRegistry.getTargetContext()) { @@ -118,7 +116,8 @@ public class HdmiCecLocalDeviceTvTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(context, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mMyLooper)); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java index 1c7ff421fe924..572ffd930bad1 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecPowerStatusControllerTest.java @@ -75,10 +75,12 @@ public class HdmiCecPowerStatusControllerTest { Context contextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); Looper myLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(contextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(myLooper)); - when(contextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(contextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(contextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(contextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(myLooper))); + when(contextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(contextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(myLooper))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(contextSpy) { diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java index b1d77d02c55b2..bcf30a255c205 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java @@ -192,10 +192,12 @@ public class HdmiControlServiceTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, null); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, null)); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, null)); when(mIPowerManagerMock.isInteractive()).thenReturn(true); HdmiCecConfig hdmiCecConfig = new FakeHdmiCecConfig(mContextSpy); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java index 826438fc8ddfd..4cd17e877689e 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java @@ -91,10 +91,12 @@ public class OneTouchPlayActionTest { setHdmiControlEnabled(hdmiControlEnabled); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(mContextSpy) { @@ -120,7 +122,8 @@ public class OneTouchPlayActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java index 53b4b491410d7..a9880c0502e85 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java @@ -78,10 +78,12 @@ public class PowerStatusMonitorActionTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(mTestLooper.getLooper())); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(mContextSpy, @@ -108,7 +110,8 @@ public class PowerStatusMonitorActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(mTestLooper.getLooper())); } @Override diff --git a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java index 865eb7a3b56dd..2cf4ef1f14cb8 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/SystemAudioAutoInitiationActionTest.java @@ -78,10 +78,12 @@ public class SystemAudioAutoInitiationActionTest { mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); Looper myLooper = mTestLooper.getLooper(); - PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock, - mIThermalServiceMock, new Handler(myLooper)); - when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager); - when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); + when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(myLooper))); + when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i -> + new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(myLooper))); when(mIPowerManagerMock.isInteractive()).thenReturn(true); mHdmiControlService = new HdmiControlService(mContextSpy) { @@ -107,7 +109,8 @@ public class SystemAudioAutoInitiationActionTest { @Override protected PowerManager getPowerManager() { - return powerManager; + return new PowerManager(mContextSpy, mIPowerManagerMock, + mIThermalServiceMock, new Handler(myLooper)); } @Override