releases/tests/Paca.Tests/Core/BatteryPowerGovernorGateTests.cs

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);
}
}