64 lines
2.1 KiB
C#
64 lines
2.1 KiB
C#
using System;
|
|
using Paca.Mobile.Core;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Core;
|
|
|
|
public class BatteryPowerGovernorGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate249_BatteryPowerGovernor_DetectsLowBattery_AndEntersLowPowerMode()
|
|
{
|
|
var governor = new BatteryPowerGovernor();
|
|
|
|
// 15% battery, discharging
|
|
governor.UpdateBatteryState(batteryLevelPercent: 15, isCharging: false);
|
|
|
|
Assert.True(governor.IsLowPowerModeActive);
|
|
Assert.Equal(1, governor.MaxRecommendedDownloads);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate250_BatteryPowerGovernor_AcPowerConnected_RestoresHighPerformance()
|
|
{
|
|
var governor = new BatteryPowerGovernor();
|
|
|
|
// 15% battery, but charging on AC
|
|
governor.UpdateBatteryState(batteryLevelPercent: 15, isCharging: true);
|
|
|
|
Assert.False(governor.IsLowPowerModeActive);
|
|
Assert.True(governor.MaxRecommendedDownloads >= 4);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate251_BatteryPowerGovernor_ConfigurableThreshold()
|
|
{
|
|
var governor = new BatteryPowerGovernor(lowBatteryThresholdPercent: 30);
|
|
|
|
// 25% battery with 30% threshold -> low power active
|
|
governor.UpdateBatteryState(batteryLevelPercent: 25, isCharging: false);
|
|
Assert.True(governor.IsLowPowerModeActive);
|
|
|
|
// 35% battery with 30% threshold -> normal
|
|
governor.UpdateBatteryState(batteryLevelPercent: 35, isCharging: false);
|
|
Assert.False(governor.IsLowPowerModeActive);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate252_BatteryPowerGovernor_AppliesPlayerRenderPolicy()
|
|
{
|
|
var governor = new BatteryPowerGovernor();
|
|
|
|
// Low power
|
|
governor.UpdateBatteryState(batteryLevelPercent: 10, isCharging: false);
|
|
var lowPolicy = governor.GetRenderPolicy();
|
|
Assert.False(lowPolicy.EnableGlassmorphismBlur);
|
|
Assert.Equal(30, lowPolicy.TargetFramerate);
|
|
|
|
// High power
|
|
governor.UpdateBatteryState(batteryLevelPercent: 90, isCharging: false);
|
|
var highPolicy = governor.GetRenderPolicy();
|
|
Assert.True(highPolicy.EnableGlassmorphismBlur);
|
|
Assert.Equal(60, highPolicy.TargetFramerate);
|
|
}
|
|
}
|