Skip to content

Commit d71fe7d

Browse files
authored
Simplify Filesystem, introduce TestReaderWriter (#3873)
* Introduce `TestReaderWriter` with test-specific API. Move `FilesystemCache` and `AssetPathProvider` out of `Filesystem` and into the `Reader` classes. * Address review comments.
1 parent 2f2eca0 commit d71fe7d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+594
-448
lines changed

_test_common/lib/in_memory_reader_writer.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import 'dart:convert';
77
import 'package:build/build.dart';
88
import 'package:build_runner_core/build_runner_core.dart';
99
import 'package:build_test/build_test.dart';
10+
// ignore: implementation_imports
11+
import 'package:build_test/src/in_memory_reader_writer.dart';
1012
import 'package:path/path.dart' as p;
1113
import 'package:watcher/watcher.dart';
1214

@@ -26,7 +28,7 @@ class InMemoryRunnerAssetReaderWriter extends InMemoryAssetReaderWriter
2628

2729
@override
2830
Future writeAsBytes(AssetId id, List<int> bytes) async {
29-
var type = assets.containsKey(id) ? ChangeType.MODIFY : ChangeType.ADD;
31+
var type = testing.exists(id) ? ChangeType.MODIFY : ChangeType.ADD;
3032
await super.writeAsBytes(id, bytes);
3133
FakeWatcher.notifyWatchers(
3234
WatchEvent(type, p.absolute(id.package, p.fromUri(id.path))),
@@ -39,7 +41,7 @@ class InMemoryRunnerAssetReaderWriter extends InMemoryAssetReaderWriter
3941
String contents, {
4042
Encoding encoding = utf8,
4143
}) async {
42-
var type = assets.containsKey(id) ? ChangeType.MODIFY : ChangeType.ADD;
44+
var type = testing.exists(id) ? ChangeType.MODIFY : ChangeType.ADD;
4345
await super.writeAsString(id, contents, encoding: encoding);
4446
FakeWatcher.notifyWatchers(
4547
WatchEvent(type, p.absolute(id.package, p.fromUri(id.path))),
@@ -49,7 +51,7 @@ class InMemoryRunnerAssetReaderWriter extends InMemoryAssetReaderWriter
4951
@override
5052
Future delete(AssetId id) async {
5153
onDelete?.call(id);
52-
assets.remove(id);
54+
testing.delete(id);
5355
FakeWatcher.notifyWatchers(
5456
WatchEvent(ChangeType.REMOVE, p.absolute(id.package, p.fromUri(id.path))),
5557
);

_test_common/lib/test_phases.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ Future<TestBuildersResult> testBuilders(
116116
inputs.forEach((serializedId, contents) {
117117
var id = makeAssetId(serializedId);
118118
if (contents is String) {
119-
readerWriter.filesystem.writeAsStringSync(id, contents);
119+
readerWriter.testing.writeString(id, contents);
120120
} else if (contents is List<int>) {
121-
readerWriter.filesystem.writeAsBytesSync(id, contents);
121+
readerWriter.testing.writeBytes(id, contents);
122122
}
123123
});
124124

@@ -179,7 +179,7 @@ Future<TestBuildersResult> testBuilders(
179179
void checkBuild(
180180
BuildResult result, {
181181
Map<String, Object>? outputs,
182-
required InMemoryAssetReaderWriter readerWriter,
182+
required TestReaderWriter readerWriter,
183183
BuildStatus status = BuildStatus.success,
184184
String rootPackage = 'a',
185185
String expectedGeneratedDir = 'generated',

build/lib/src/builder/build_step_impl.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ class BuildStepImpl implements BuildStep, AssetReaderState {
100100
@override
101101
Filesystem get filesystem => _reader.filesystem;
102102

103+
@override
104+
FilesystemCache get cache => _reader.cache;
105+
103106
@override
104107
AssetFinder get assetFinder => _reader.assetFinder;
105108

0 commit comments

Comments
 (0)