31 lines
1.7 KiB
Dart
31 lines
1.7 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jj_mkvmaker/app/vault_location.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/desktop_storage_service.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/process_media_tool.dart';
|
|
import 'package:jj_mkvmaker/services/platform_services.dart';
|
|
import 'package:path/path.dart' as p;
|
|
|
|
/// 약속 (M3 VaultLocation): 손으로 조립한 PlatformServices 의 보관함 자리는 앱 임시 폴더 아래 (사용자 보관함 · 앱 데이터를 건드리지 않음) ·
|
|
/// 주입한 자리를 그대로 씀 · under 는 고르기 없음. 실제 자리 (device) 는 앱 조립 (create) 만 쓰고, 기기 확인은 보관함 화면 시험이 본다
|
|
void main() {
|
|
test('손으로 조립하면 처음 값은 앱 임시 폴더 아래 vault · vault_view, 고르기는 없음', () async {
|
|
final s = PlatformServices(mediaTool: ProcessMediaTool('x', 'y'), storage: DesktopStorageService());
|
|
final temp = await s.storage.tempDirectory();
|
|
expect((await s.vault.vaultDir()).path, p.join(temp, 'vault'));
|
|
expect((await s.vault.viewRoot()).path, p.join(temp, 'vault_view'));
|
|
expect(await s.vault.pickFolder(), isNull);
|
|
});
|
|
|
|
test('주입한 자리를 그대로 씀', () async {
|
|
final where = VaultLocation(
|
|
vaultDir: () async => Directory('X:/v'),
|
|
viewRoot: () async => Directory('X:/view'),
|
|
pickFolder: () async => 'X:/out',
|
|
);
|
|
final s = PlatformServices(mediaTool: ProcessMediaTool('x', 'y'), storage: DesktopStorageService(), vault: where);
|
|
expect([(await s.vault.vaultDir()).path, (await s.vault.viewRoot()).path, await s.vault.pickFolder()], ['X:/v', 'X:/view', 'X:/out']);
|
|
});
|
|
}
|