Unverified Commit 2951363d authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] switch FakeCache to cache.test and NoopUsage to TestUsage (#76802)

parent ae29dde3
......@@ -33,7 +33,7 @@ void main() {
expect(testLogger.traceText, contains('build succeeded.'));
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -48,7 +48,7 @@ void main() {
expect(testLogger.traceText, contains('build succeeded.'));
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -63,7 +63,7 @@ void main() {
expect(testLogger.traceText, contains('build succeeded.'));
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -75,7 +75,7 @@ void main() {
expect(commandRunner.run(<String>['assemble', 'debug_macos_bundle_flutter_assets']), throwsToolExit());
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -88,7 +88,7 @@ void main() {
expect(commandRunner.run(<String>['assemble', '-o Output', 'undefined']),
throwsToolExit());
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -105,7 +105,7 @@ void main() {
expect(testLogger.errorText, isNot(contains('bar')));
expect(testLogger.errorText, isNot(contains(stackTrace.toString())));
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -140,7 +140,7 @@ void main() {
)),
);
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -154,7 +154,7 @@ void main() {
await commandRunner.run(<String>['assemble', '-o Output', 'debug_macos_bundle_flutter_assets']);
}, overrides: <Type, Generator>{
Artifacts: () => Artifacts.test(localEngine: 'out/host_release'),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......@@ -217,7 +217,7 @@ void main() {
expect(inputs.readAsStringSync(), contains('fizz'));
expect(inputs.lastModifiedSync(), isNot(theDistantPast));
}, overrides: <Type, Generator>{
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
});
......
......@@ -22,6 +22,7 @@ import 'package:test/fake.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
// Defined globally for fakes to use.
......
......@@ -24,6 +24,7 @@ import 'package:test/fake.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
const String _kTestFlutterRoot = '/flutter';
......
......@@ -24,6 +24,7 @@ import 'package:process/process.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
class FakeXcodeProjectInterpreterWithProfile extends FakeXcodeProjectInterpreter {
......
......@@ -18,6 +18,7 @@ import 'package:process/process.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
const String flutterRoot = r'C:\flutter';
......
......@@ -34,6 +34,7 @@ import 'package:fake_async/fake_async.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
final Generator _kNoColorOutputPlatform = () => FakePlatform(
......
......@@ -13,7 +13,7 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
MockCache cache;
......
......@@ -100,7 +100,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
group('shard-index and total-shards', () {
......@@ -124,7 +124,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
testUsingContext('without the params they not Piped to package:test',
......@@ -145,7 +145,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
});
......@@ -168,7 +168,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
testUsingContext('Pipes start-paused to package:test',
......@@ -193,7 +193,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
testUsingContext('Pipes run-skipped to package:test',
......@@ -218,7 +218,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
testUsingContext('Pipes enable-observatory', () async {
......@@ -266,7 +266,7 @@ void main() {
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Cache: () => FakeCache(),
Cache: () => Cache.test(processManager: FakeProcessManager.any()),
});
}
......
......@@ -31,6 +31,7 @@ import 'package:pubspec_parse/pubspec_parse.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fake_http_client.dart';
import '../../src/fakes.dart';
import '../../src/pubspec_schema.dart';
import '../../src/testbed.dart';
......
......@@ -20,6 +20,7 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/testbed.dart';
void main() {
......
......@@ -17,7 +17,7 @@ import 'package:test/fake.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fake_process_manager.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
AndroidWorkflow androidWorkflow;
......
......@@ -21,7 +21,6 @@ import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/fakes.dart';
import '../../src/mocks.dart' show MockAndroidSdk, MockProcessManager;
import '../../src/testbed.dart';
class MockAndroidSdkVersion extends Mock implements AndroidSdkVersion {}
......
......@@ -11,6 +11,7 @@ import 'package:flutter_tools/src/web/web_validator.dart';
import 'package:flutter_tools/src/windows/visual_studio_validator.dart';
import '../src/common.dart';
import '../src/fakes.dart';
import '../src/testbed.dart';
void main() {
......
......@@ -16,6 +16,7 @@ import 'package:mockito/mockito.dart';
import '../src/common.dart';
import '../src/context.dart';
import '../src/fakes.dart';
import '../src/mocks.dart';
import '../src/testbed.dart';
......
......@@ -11,7 +11,7 @@ import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart';
import 'package:flutter_tools/src/fuchsia/fuchsia_workflow.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
final FileSystem fileSystem = MemoryFileSystem.test();
......
......@@ -9,6 +9,7 @@ import 'dart:async';
import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/convert.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/ios/devices.dart';
......@@ -20,18 +21,17 @@ import 'package:vm_service/vm_service.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
void main() {
FakeProcessManager processManager;
Artifacts artifacts;
FakeCache fakeCache;
Cache fakeCache;
BufferLogger logger;
String ideviceSyslogPath;
setUp(() {
processManager = FakeProcessManager.list(<FakeCommand>[]);
fakeCache = FakeCache();
fakeCache = Cache.test();
artifacts = Artifacts.test();
logger = BufferLogger.test();
ideviceSyslogPath = artifacts.getArtifactPath(Artifact.idevicesyslog, platform: TargetPlatform.ios);
......
......@@ -11,7 +11,7 @@ import 'package:flutter_tools/src/macos/xcode.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
testWithoutContext('iOS workflow is disabled if feature is disabled', () {
......
......@@ -18,7 +18,7 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
final FakePlatform linux = FakePlatform(
operatingSystem: 'linux',
......
......@@ -9,7 +9,7 @@ import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/linux/linux_workflow.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
final Platform linux = FakePlatform(
......
......@@ -20,7 +20,7 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
final FakePlatform macOS = FakePlatform(
operatingSystem: 'macos',
......
......@@ -8,7 +8,7 @@ import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/macos/macos_workflow.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
final FakePlatform macOS = FakePlatform(
operatingSystem: 'macos',
......
......@@ -28,6 +28,7 @@ import 'package:yaml/yaml.dart';
import '../src/common.dart';
import '../src/context.dart';
import '../src/fakes.dart';
import '../src/pubspec_schema.dart';
import '../src/testbed.dart';
......
......@@ -38,6 +38,7 @@ import 'package:mockito/mockito.dart';
import '../src/common.dart';
import '../src/context.dart';
import '../src/fakes.dart';
import '../src/testbed.dart';
final vm_service.Isolate fakeUnpausedIsolate = vm_service.Isolate(
......
......@@ -15,7 +15,7 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
testWithoutContext('No web devices listed if feature is disabled', () async {
......
......@@ -8,7 +8,7 @@ import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/web/workflow.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
testWithoutContext('WebWorkflow applies on Linux', () {
......
......@@ -18,7 +18,7 @@ import 'package:test/fake.dart';
import '../../src/common.dart';
import '../../src/context.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
testWithoutContext('WindowsDevice defaults', () async {
......
......@@ -8,7 +8,7 @@ import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/windows/windows_workflow.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
import '../../src/fakes.dart';
void main() {
final FakePlatform windows = FakePlatform(operatingSystem: 'windows');
......
......@@ -17,7 +17,9 @@ import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/convert.dart';
import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/ios/plist_parser.dart';
import 'package:flutter_tools/src/version.dart';
import 'package:test/fake.dart';
/// A fake implementation of the [DeviceLogReader].
......@@ -445,6 +447,152 @@ class FakePub extends Fake implements Pub {
}) async { }
}
class FakeFlutterVersion implements FlutterVersion {
@override
void fetchTagsAndUpdate() { }
@override
String get channel => 'master';
@override
Future<void> checkFlutterVersionFreshness() async { }
@override
bool checkRevisionAncestry({String tentativeDescendantRevision, String tentativeAncestorRevision}) {
throw UnimplementedError();
}
@override
String get dartSdkVersion => '12';
@override
String get engineRevision => '42.2';
@override
String get engineRevisionShort => '42';
@override
Future<void> ensureVersionFile() async { }
@override
String get frameworkAge => null;
@override
String get frameworkCommitDate => null;
@override
String get frameworkDate => null;
@override
String get frameworkRevision => null;
@override
String get frameworkRevisionShort => null;
@override
String get frameworkVersion => null;
@override
GitTagVersion get gitTagVersion => null;
@override
String getBranchName({bool redactUnknownBranches = false}) {
return 'master';
}
@override
String getVersionString({bool redactUnknownBranches = false}) {
return 'v0.0.0';
}
@override
String get repositoryUrl => null;
@override
Map<String, Object> toJson() {
return null;
}
}
// A test implementation of [FeatureFlags] that allows enabling without reading
// config. If not otherwise specified, all values default to false.
class TestFeatureFlags implements FeatureFlags {
TestFeatureFlags({
this.isLinuxEnabled = false,
this.isMacOSEnabled = false,
this.isWebEnabled = false,
this.isWindowsEnabled = false,
this.isSingleWidgetReloadEnabled = false,
this.isAndroidEnabled = true,
this.isIOSEnabled = true,
this.isFuchsiaEnabled = false,
this.isExperimentalInvalidationStrategyEnabled = false,
});
@override
final bool isLinuxEnabled;
@override
final bool isMacOSEnabled;
@override
final bool isWebEnabled;
@override
final bool isWindowsEnabled;
@override
final bool isSingleWidgetReloadEnabled;
@override
final bool isAndroidEnabled;
@override
final bool isIOSEnabled;
@override
final bool isFuchsiaEnabled;
@override
final bool isExperimentalInvalidationStrategyEnabled;
@override
bool isEnabled(Feature feature) {
switch (feature) {
case flutterWebFeature:
return isWebEnabled;
case flutterLinuxDesktopFeature:
return isLinuxEnabled;
case flutterMacOSDesktopFeature:
return isMacOSEnabled;
case flutterWindowsDesktopFeature:
return isWindowsEnabled;
case singleWidgetReload:
return isSingleWidgetReloadEnabled;
case flutterAndroidFeature:
return isAndroidEnabled;
case flutterIOSFeature:
return isIOSEnabled;
case flutterFuchsiaFeature:
return isFuchsiaEnabled;
case experimentalInvalidationStrategy:
return isExperimentalInvalidationStrategyEnabled;
}
return false;
}
}
class FakeStatusLogger extends DelegatingLogger {
FakeStatusLogger(Logger delegate) : super(delegate);
Status status;
@override
Status startProgress(String message, {Duration timeout, String progressId, bool multilineOutput = false, int progressIndicatorPadding = kDefaultStatusPadding}) {
return status;
}
}
class TestBuildSystem implements BuildSystem {
/// Create a [BuildSystem] instance that returns the provided results in order.
TestBuildSystem.list(this._results, [this._onRun])
......
......@@ -19,7 +19,6 @@ import 'package:flutter_tools/src/base/terminal.dart';
import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/context_runner.dart';
import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:flutter_tools/src/version.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
......@@ -29,6 +28,7 @@ import 'package:process/process.dart';
import 'common.dart' as tester;
import 'context.dart';
import 'fake_http_client.dart';
import 'fakes.dart';
import 'throwing_pub.dart';
export 'package:flutter_tools/src/base/context.dart' show Generator;
......@@ -45,7 +45,7 @@ final Map<Type, Generator> _testbedDefaults = <Type, Generator>{
), // Allows reading logs and prevents stdout.
OperatingSystemUtils: () => FakeOperatingSystemUtils(),
OutputPreferences: () => OutputPreferences.test(), // configures BufferLogger to avoid color codes.
Usage: () => NoOpUsage(), // prevent addition of analytics from burdening test mocks
Usage: () => TestUsage(), // prevent addition of analytics from burdening test mocks
FlutterVersion: () => FakeFlutterVersion(), // prevent requirement to mock git for test runner.
Signals: () => FakeSignals(), // prevent registering actual signal handlers.
Pub: () => ThrowingPub(), // prevent accidental invocations of pub.
......@@ -157,306 +157,3 @@ class Testbed {
}, createHttpClient: (SecurityContext c) => FakeHttpClient.any());
}
}
/// A no-op implementation of [Usage] for testing.
class NoOpUsage implements Usage {
@override
bool enabled = false;
@override
bool suppressAnalytics = true;
@override
String get clientId => 'test';
@override
Future<void> ensureAnalyticsSent() {
return null;
}
@override
Stream<Map<String, Object>> get onSend => const Stream<Map<String, Object>>.empty();
@override
void printWelcome() {}
@override
void sendCommand(String command, {Map<String, String> parameters}) {}
@override
void sendEvent(String category, String parameter, {
String label,
int value,
Map<String, String> parameters,
}) {}
@override
void sendException(dynamic exception) {}
@override
void sendTiming(String category, String variableName, Duration duration, { String label }) {}
}
class FakeFlutterVersion implements FlutterVersion {
@override
void fetchTagsAndUpdate() { }
@override
String get channel => 'master';
@override
Future<void> checkFlutterVersionFreshness() async { }
@override
bool checkRevisionAncestry({String tentativeDescendantRevision, String tentativeAncestorRevision}) {
throw UnimplementedError();
}
@override
String get dartSdkVersion => '12';
@override
String get engineRevision => '42.2';
@override
String get engineRevisionShort => '42';
@override
Future<void> ensureVersionFile() async { }
@override
String get frameworkAge => null;
@override
String get frameworkCommitDate => null;
@override
String get frameworkDate => null;
@override
String get frameworkRevision => null;
@override
String get frameworkRevisionShort => null;
@override
String get frameworkVersion => null;
@override
GitTagVersion get gitTagVersion => null;
@override
String getBranchName({bool redactUnknownBranches = false}) {
return 'master';
}
@override
String getVersionString({bool redactUnknownBranches = false}) {
return 'v0.0.0';
}
@override
String get repositoryUrl => null;
@override
Map<String, Object> toJson() {
return null;
}
}
// A test implementation of [FeatureFlags] that allows enabling without reading
// config. If not otherwise specified, all values default to false.
class TestFeatureFlags implements FeatureFlags {
TestFeatureFlags({
this.isLinuxEnabled = false,
this.isMacOSEnabled = false,
this.isWebEnabled = false,
this.isWindowsEnabled = false,
this.isSingleWidgetReloadEnabled = false,
this.isAndroidEnabled = true,
this.isIOSEnabled = true,
this.isFuchsiaEnabled = false,
this.isExperimentalInvalidationStrategyEnabled = false,
});
@override
final bool isLinuxEnabled;
@override
final bool isMacOSEnabled;
@override
final bool isWebEnabled;
@override
final bool isWindowsEnabled;
@override
final bool isSingleWidgetReloadEnabled;
@override
final bool isAndroidEnabled;
@override
final bool isIOSEnabled;
@override
final bool isFuchsiaEnabled;
@override
final bool isExperimentalInvalidationStrategyEnabled;
@override
bool isEnabled(Feature feature) {
switch (feature) {
case flutterWebFeature:
return isWebEnabled;
case flutterLinuxDesktopFeature:
return isLinuxEnabled;
case flutterMacOSDesktopFeature:
return isMacOSEnabled;
case flutterWindowsDesktopFeature:
return isWindowsEnabled;
case singleWidgetReload:
return isSingleWidgetReloadEnabled;
case flutterAndroidFeature:
return isAndroidEnabled;
case flutterIOSFeature:
return isIOSEnabled;
case flutterFuchsiaFeature:
return isFuchsiaEnabled;
case experimentalInvalidationStrategy:
return isExperimentalInvalidationStrategyEnabled;
}
return false;
}
}
class FakeStatusLogger extends DelegatingLogger {
FakeStatusLogger(Logger delegate) : super(delegate);
Status status;
@override
Status startProgress(String message, {Duration timeout, String progressId, bool multilineOutput = false, int progressIndicatorPadding = kDefaultStatusPadding}) {
return status;
}
}
/// An implementation of the Cache which does not download or require locking.
class FakeCache implements Cache {
@override
bool includeAllPlatforms;
@override
Set<String> platformOverrideArtifacts;
@override
bool useUnsignedMacBinaries;
@override
Future<bool> areRemoteArtifactsAvailable({String engineVersion, bool includeAllPlatforms = true}) async {
return true;
}
@override
String get dartSdkVersion => null;
@override
String get storageBaseUrl => null;
@override
MapEntry<String, String> get dyLdLibEntry => const MapEntry<String, String>('DYLD_LIBRARY_PATH', '');
@override
String get engineRevision => null;
@override
Directory getArtifactDirectory(String name) {
return globals.fs.currentDirectory;
}
@override
Directory getCacheArtifacts() {
return globals.fs.currentDirectory;
}
@override
Directory getCacheDir(String name) {
return globals.fs.currentDirectory;
}
@override
Directory getDownloadDir() {
return globals.fs.currentDirectory;
}
@override
Directory getRoot() {
return globals.fs.currentDirectory;
}
@override
String getHostPlatformArchName() => 'x64';
@override
File getLicenseFile() {
return globals.fs.currentDirectory.childFile('LICENSE');
}
@override
File getStampFileFor(String artifactName) {
throw UnsupportedError('Not supported in the fake Cache');
}
@override
String getStampFor(String artifactName) {
throw UnsupportedError('Not supported in the fake Cache');
}
@override
String getVersionFor(String artifactName) {
throw UnsupportedError('Not supported in the fake Cache');
}
@override
Directory getWebSdkDirectory() {
return globals.fs.currentDirectory;
}
@override
bool isOlderThanToolsStamp(FileSystemEntity entity) {
return false;
}
@override
Future<bool> isUpToDate() async {
return true;
}
@override
void setStampFor(String artifactName, String version) {
throw UnsupportedError('Not supported in the fake Cache');
}
@override
Future<void> updateAll(Set<DevelopmentArtifact> requiredArtifacts) async {
}
@override
Future<bool> doesRemoteExist(String message, Uri url) async {
return true;
}
@override
void clearStampFiles() { }
@override
void checkLockAcquired() { }
@override
Future<void> lock() async { }
@override
void releaseLock() { }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment