JJ_MKVMaker/test/support/flaky_secret_store.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);
}