28 lines
859 B
Dart
28 lines
859 B
Dart
import 'package:jj_mkvmaker/services/secret_store.dart';
|
|
|
|
/// 읽기 · 쓰기가 될 때와 안 될 때를 바꿀 수 있는 안전 저장소 (기기 저장소가 잠깐 잠긴 때처럼).
|
|
/// 시험에만 있다 - lib 의 저장소에는 실패 흉내 플래그를 두지 않는다 (M1)
|
|
class FlakySecretStore implements SecretStore {
|
|
final Map<String, String> values = {};
|
|
bool failRead = false;
|
|
bool failWrite = false;
|
|
|
|
@override
|
|
String? lostCopy;
|
|
|
|
@override
|
|
Future<Map<String, String>> readAll() async {
|
|
if (failRead) throw StateError('secret store unavailable');
|
|
return Map.of(values);
|
|
}
|
|
|
|
@override
|
|
Future<void> write(String key, String value) async {
|
|
if (failWrite) throw StateError('secret store write failed');
|
|
values[key] = value;
|
|
}
|
|
|
|
@override
|
|
Future<void> delete(String key) async => values.remove(key);
|
|
}
|