63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
using Paca.App.Core;
|
|
using Paca.App.ViewModels;
|
|
using Paca.Core.Config;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Browser;
|
|
|
|
public class DownloadActiveStateTests
|
|
{
|
|
[Theory]
|
|
[InlineData("대기", false)]
|
|
[InlineData("일시정지", false)]
|
|
[InlineData("완료", false)]
|
|
[InlineData("오류", false)]
|
|
[InlineData("취소됨", false)]
|
|
[InlineData("다운로드 중", true)]
|
|
[InlineData("병합 중", true)]
|
|
[InlineData("리먹스 중", true)]
|
|
[InlineData("대기 중", true)]
|
|
[InlineData("예약 대기", true)]
|
|
[InlineData("속도제한 대기", true)]
|
|
public void IsActiveDownload_상태별_활성_여부_정확성_검증(string status, bool expectedActive)
|
|
{
|
|
var item = new DownloadItemViewModel("Test Video")
|
|
{
|
|
Status = status
|
|
};
|
|
|
|
Assert.Equal(expectedActive, item.IsActiveDownload);
|
|
}
|
|
|
|
[Fact]
|
|
public void 단순_감지된_미디어는_ActiveDownloadsCount에_포함되지_않는다()
|
|
{
|
|
var cfg = new AppConfig();
|
|
var manager = new DownloadManager(cfg, _ => Task.FromResult(new List<Microsoft.Web.WebView2.Core.CoreWebView2Cookie>()), _ => { });
|
|
|
|
// 단순 감지된 미디어 등록 (초기 Status: "대기")
|
|
var detected1 = new DownloadItemViewModel("Detected 1") { Status = "대기" };
|
|
var detected2 = new DownloadItemViewModel("Detected 2") { Status = "대기" };
|
|
var completed = new DownloadItemViewModel("Done 1") { Status = "완료" };
|
|
var active = new DownloadItemViewModel("Active 1") { Status = "다운로드 중" };
|
|
|
|
manager.Items.Add(detected1);
|
|
manager.Items.Add(detected2);
|
|
manager.Items.Add(completed);
|
|
manager.Items.Add(active);
|
|
|
|
// 오직 실제 다운로드 중인 1건만 카운트되어야 함
|
|
Assert.Equal(1, manager.ActiveDownloadsCount);
|
|
}
|
|
|
|
[Fact]
|
|
public void DownloadManager_배터리_절전_모드_연동_PowerManager_인스턴스_및_상태_제어_검증()
|
|
{
|
|
var cfg = new AppConfig { EnableBatterySaver = true };
|
|
var manager = new DownloadManager(cfg, _ => Task.FromResult(new List<Microsoft.Web.WebView2.Core.CoreWebView2Cookie>()), _ => { });
|
|
|
|
Assert.NotNull(manager.PowerManager);
|
|
manager.PowerManager.UpdateBatteryState(percent: 15, isCharging: false);
|
|
Assert.True(manager.PowerManager.IsLowPowerModeActive);
|
|
}
|
|
}
|