Mock BatterySaverStateMachine in PowerManagerServiceTests

Mock out BatterySaverStateMachine, so that PowerManagerServiceTests
don't depend on implementation of the class.
BatterySaverStateMachine lead to a crash on a device with over 1 day uptime,
because it called a method that couldn't be mocked on a BatterySaverController mock.

Test: atest com.android.server.power.PowerManagerServiceTest
Bug: 151828714
Change-Id: I6bdf0ae98f58b99f617ea3ae6addcc484aeb30a6
This commit is contained in:
Robert Horvath
2020-03-18 17:31:02 +01:00
parent 711ba26816
commit 9094f6ac10
2 changed files with 15 additions and 2 deletions

View File

@@ -780,6 +780,11 @@ public final class PowerManagerService extends SystemService
batterySaverPolicy, batterySavingStats);
}
BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context,
BatterySaverController batterySaverController) {
return new BatterySaverStateMachine(lock, context, batterySaverController);
}
NativeWrapper createNativeWrapper() {
return new NativeWrapper();
}
@@ -864,8 +869,8 @@ public final class PowerManagerService extends SystemService
mInjector.createBatterySaverPolicy(mLock, mContext, mBatterySavingStats);
mBatterySaverController = mInjector.createBatterySaverController(mLock, mContext,
mBatterySaverPolicy, mBatterySavingStats);
mBatterySaverStateMachine = new BatterySaverStateMachine(
mLock, mContext, mBatterySaverController);
mBatterySaverStateMachine = mInjector.createBatterySaverStateMachine(mLock, mContext,
mBatterySaverController);
mInattentiveSleepWarningOverlayController =
mInjector.createInattentiveSleepWarningController();

View File

@@ -83,6 +83,7 @@ import com.android.server.power.PowerManagerService.NativeWrapper;
import com.android.server.power.PowerManagerService.UserSwitchedReceiver;
import com.android.server.power.batterysaver.BatterySaverController;
import com.android.server.power.batterysaver.BatterySaverPolicy;
import com.android.server.power.batterysaver.BatterySaverStateMachine;
import com.android.server.power.batterysaver.BatterySavingStats;
import org.junit.After;
@@ -109,6 +110,7 @@ public class PowerManagerServiceTest {
@Mock private BatterySaverController mBatterySaverControllerMock;
@Mock private BatterySaverPolicy mBatterySaverPolicyMock;
@Mock private BatterySaverStateMachine mBatterySaverStateMachineMock;
@Mock private LightsManager mLightsManagerMock;
@Mock private DisplayManagerInternal mDisplayManagerInternalMock;
@Mock private BatteryManagerInternal mBatteryManagerInternalMock;
@@ -215,6 +217,12 @@ public class PowerManagerServiceTest {
return mBatterySaverControllerMock;
}
@Override
BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context,
BatterySaverController batterySaverController) {
return mBatterySaverStateMachineMock;
}
@Override
NativeWrapper createNativeWrapper() {
return mNativeWrapperMock;