Skip to content

Commit 77dcd4f

Browse files
committed
Refactor fs files, add typed mocked
1 parent aee41c8 commit 77dcd4f

File tree

8 files changed

+81
-8
lines changed

8 files changed

+81
-8
lines changed

packages/lw_file_system/lib/src/api/file_system_base.dart renamed to packages/lw_file_system/lib/src/api/base.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ import 'package:path/path.dart' as p;
88
import 'package:rxdart/rxdart.dart';
99
import 'package:synchronized/synchronized.dart';
1010

11-
import 'file_system_dav.dart';
12-
import 'file_system_io.dart';
13-
import 'file_system_html_stub.dart'
14-
if (dart.library.js_interop) 'file_system_html.dart';
11+
import 'dav.dart';
12+
import 'io.dart';
13+
import 'html_stub.dart' if (dart.library.js_interop) 'html.dart';
1514

1615
part 'base/directory.dart';
1716
part 'base/key.dart';
File renamed without changes.
File renamed without changes.

packages/lw_file_system/lib/src/api/file_system_html_stub.dart renamed to packages/lw_file_system/lib/src/api/html_stub.dart

File renamed without changes.
File renamed without changes.

packages/lw_file_system/lib/src/api/file_system_mock.dart renamed to packages/lw_file_system/lib/src/api/mock.dart

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,75 @@ class MockKeyFileSystem extends KeyFileSystem {
228228
return _files.keys.toList();
229229
}
230230
}
231+
232+
class MockTypedDirectoryFileSystem<T> extends TypedDirectoryFileSystem<T> {
233+
MockTypedDirectoryFileSystem._(
234+
MockFileSystem super.mockFileSystem, {
235+
required super.onEncode,
236+
required super.onDecode,
237+
required super.config,
238+
super.createDefault,
239+
}) : super.raw();
240+
241+
factory MockTypedDirectoryFileSystem({
242+
required EncodeTypedFileSystemCallback<T> onEncode,
243+
required DecodeTypedFileSystemCallback<T> onDecode,
244+
required FileSystemConfig config,
245+
CreateDefaultCallback<TypedDirectoryFileSystem<T>> createDefault =
246+
defaultCreateDefault,
247+
}) {
248+
MockTypedDirectoryFileSystem<T>? fs;
249+
final mock = MockFileSystem(
250+
config: config,
251+
createDefault: (_) async {
252+
if (fs != null) {
253+
await fs.runDefault();
254+
}
255+
},
256+
);
257+
fs = MockTypedDirectoryFileSystem._(
258+
mock,
259+
onEncode: onEncode,
260+
onDecode: onDecode,
261+
config: config,
262+
createDefault: createDefault,
263+
);
264+
return fs;
265+
}
266+
}
267+
268+
class MockTypedKeyFileSystem<T> extends TypedKeyFileSystem<T> {
269+
MockTypedKeyFileSystem._(
270+
MockKeyFileSystem super.mockFileSystem, {
271+
required super.onEncode,
272+
required super.onDecode,
273+
required super.config,
274+
super.createDefault,
275+
}) : super.raw();
276+
277+
factory MockTypedKeyFileSystem({
278+
required EncodeTypedFileSystemCallback<T> onEncode,
279+
required DecodeTypedFileSystemCallback<T> onDecode,
280+
required FileSystemConfig config,
281+
CreateDefaultCallback<TypedKeyFileSystem<T>> createDefault =
282+
defaultCreateDefault,
283+
}) {
284+
MockTypedKeyFileSystem<T>? fs;
285+
final mock = MockKeyFileSystem(
286+
config: config,
287+
createDefault: (_) async {
288+
if (fs != null) {
289+
await fs.runDefault();
290+
}
291+
},
292+
);
293+
fs = MockTypedKeyFileSystem._(
294+
mock,
295+
onEncode: onEncode,
296+
onDecode: onDecode,
297+
config: config,
298+
createDefault: createDefault,
299+
);
300+
return fs;
301+
}
302+
}
File renamed without changes.

packages/lw_file_system/lib/src/api/typed.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ class TypedDirectoryFileSystem<T> extends TypedFileSystem<T>
4141
return null;
4242
}
4343

44-
TypedDirectoryFileSystem._(
44+
@protected
45+
TypedDirectoryFileSystem.raw(
4546
this.fileSystem, {
4647
required super.onDecode,
4748
required super.onEncode,
@@ -67,7 +68,7 @@ class TypedDirectoryFileSystem<T> extends TypedFileSystem<T>
6768
createDefault: createWrappedDefault,
6869
useIsolates: useIsolates,
6970
);
70-
fileSystem = TypedDirectoryFileSystem._(
71+
fileSystem = TypedDirectoryFileSystem.raw(
7172
directorySystem,
7273
onEncode: onEncode,
7374
onDecode: onDecode,
@@ -170,7 +171,8 @@ class TypedKeyFileSystem<T> extends TypedFileSystem<T>
170171
return null;
171172
}
172173

173-
TypedKeyFileSystem._(
174+
@protected
175+
TypedKeyFileSystem.raw(
174176
this.fileSystem, {
175177
required super.onDecode,
176178
required super.onEncode,
@@ -194,7 +196,7 @@ class TypedKeyFileSystem<T> extends TypedFileSystem<T>
194196
storage: storage,
195197
createDefault: createWrappedDefault,
196198
);
197-
fileSystem = TypedKeyFileSystem._(
199+
fileSystem = TypedKeyFileSystem.raw(
198200
keySystem,
199201
onEncode: onEncode,
200202
onDecode: onDecode,

0 commit comments

Comments
 (0)