JJ_MKVMaker/integration_test/support/shot_services.dart

46 lines
1.9 KiB
Dart

import 'package:jj_mkvmaker/services/platform_services.dart';
import 'package:jj_mkvmaker/services/system_usage.dart';
import '../../test/support/test_explorer_device.dart';
/// 캡처용 (관리자 10/24): 위 막대의 CPU · 메모리는 이 PC 의 실제 값이라 실행마다 달라 캡처가 흔들렸다 - 정한 값 (시험 쪽에서만)
class FixedUsage implements SystemUsage {
const FixedUsage();
@override
UsageSample? read() => const UsageSample(cpu: 0.05, memUsed: 31, memTotal: 100);
@override
(int, int)? disk(String path) => null;
}
/// 캡처용 실제 조립 ([PlatformServices.create] 그대로) 에서 실행마다 다른 값만 정한 값으로:
/// CPU · 메모리 ([FixedUsage]) · 디스크 남은 / 전체 (100 GB / 500 GB). 나머지 (엔진 · 저장소 · 기기) 는 실제 것
PlatformServices shotServices() {
final r = PlatformServices.create();
return PlatformServices(
mediaTool: r.mediaTool,
storage: r.storage,
createPlayer: r.createPlayer,
createMediaPlayer: r.createMediaPlayer,
createRecognizer: r.createRecognizer,
createTranslator: r.createTranslator,
createDownloadBackends: r.createDownloadBackends,
createSubtitleProviders: r.createSubtitleProviders,
createUpscaler: r.createUpscaler,
findLanSmb: r.findLanSmb,
diskSpace: (_) async => (107374182400, 536870912000),
clock: r.clock,
vault: r.vault,
privileged: r.privileged,
isMetered: r.isMetered,
keepScreenOn: r.keepScreenOn,
updater: r.updater,
usage: r.usage == null ? null : const FixedUsage(),
models: r.models,
shell: r.shell,
platform: r.platform,
);
}
/// 캡처용 파일 탐색기 기기: 실제 기기 그대로 (목록 · 드라이브 · 휴지통) 에서 드라이브 남은 / 전체 (TC 모양 창 위 줄) 만 정한 값
TestExplorerDevice shotDevice() => TestExplorerDevice()..space = (_) => (107374182400, 536870912000);