anchor.diff:    });
   }
   
  -class MockAndroidProject extends Mock implements AndroidProject {}
  -class MockFlutterManifest extends Mock implements FlutterManifest {}
  -class MockFlutterProject extends Mock implements FlutterProject {}
  -class MockIosProject extends Mock implements IosProject {}
  -class MockMacOSProject extends Mock implements MacOSProject {}
  -class MockXcodeProjectInterpreter extends Mock implements XcodeProjectInterpreter {}
  -class MockWebProject extends Mock implements WebProject {}
  -class MockWindowsProject extends Mock implements WindowsProject {}
  -class MockLinuxProject extends Mock implements LinuxProject {}
  +class FakeFlutterManifest extends Fake implements FlutterManifest {
  +  @override
  +  Set<String> get dependencies => <String>{};
  +}
  +
  +class FakeXcodeProjectInterpreter extends Fake implements XcodeProjectInterpreter {
  +  @override
  +  bool get isInstalled => false;
  +}
  +
  +class FakeFlutterProject extends Fake implements FlutterProject {
  +  @override
  +  bool isModule = false;
  +
  +  @override
  +  FlutterManifest manifest;
  +
  +  @override
  +  Directory directory;
  +
  +  @override
  +  File flutterPluginsFile;
  +
  +  @override
  +  File flutterPluginsDependenciesFile;
  +
  +  @override
  +  IosProject ios;
  +
  +  @override
  +  AndroidProject android;
  +
  +  @override
  +  WebProject web;
  +
  +  @override
  +  MacOSProject macos;
  +
  +  @override
  +  LinuxProject linux;
  +
  +  @override
  +  WindowsProject windows;
  +
  +  @override
  +  WindowsUwpProject windowsUwp;
  +}
  +
  +class FakeMacOSProject extends Fake implements MacOSProject {
  +  @override
  +  String pluginConfigKey = 'macos';
  +
  +  bool exists = false;
  +
  +  @override
  +  File podfile;
  +
  +  @override
  +  File podManifestLock;
  +
  +  @override
  +  Directory managedDirectory;
  +
  +  @override
  +  bool existsSync() => exists;
  +}
  +
  +class FakeIosProject extends Fake implements IosProject {
  +  @override
  +  String pluginConfigKey = 'ios';
  +
  +  bool testExists = false;
  +
  +  @override
  +  bool existsSync() => testExists;
  +
  +  @override
  +  bool get exists => testExists;
  +
  +  @override
  +  Directory pluginRegistrantHost;
  +
  +  @override
  +  File podfile;
  +
  +  @override
  +  File podManifestLock;
  +}
  +
  +class FakeAndroidProject extends Fake implements AndroidProject {
  +  @override
  +  String pluginConfigKey = 'android';
  +
  +  bool exists = false;
  +
  +  @override
  +  Directory pluginRegistrantHost;
  +
  +  @override
  +  Directory hostAppGradleRoot;
  +
  +  @override
  +  File appManifestFile;
  +
  +  AndroidEmbeddingVersion embeddingVersion;
  +
  +  @override
  +  bool existsSync() => exists;
  +
  +  @override
  +  AndroidEmbeddingVersion getEmbeddingVersion() {
  +    return embeddingVersion;
  +  }
  +}
  +
  +class FakeWebProject extends Fake implements WebProject {
  +  @override
  +  String pluginConfigKey = 'web';
  +
  +  @override
  +  Directory libDirectory;
  +
  +  bool exists = false;
  +
  +  @override
  +  bool existsSync() => exists;
  +}
  +
  +class FakeWindowsProject extends Fake implements WindowsProject {
  +  @override
  +  String pluginConfigKey = 'windows';
  +
  +  @override
  +  Directory managedDirectory;
  +
  +  @override
  +  Directory ephemeralDirectory;
  +
  +  @override
  +  Directory pluginSymlinkDirectory;
  +
  +  @override
  +  File cmakeFile;
  +
  +  @override
  +  File generatedPluginCmakeFile;
  +  bool exists = false;
  +
  +  @override
  +  bool existsSync() => exists;
  +}
  +
  +class FakeLinuxProject extends Fake implements LinuxProject {
  +  @override
  +  String pluginConfigKey = 'linux';
  +
  +  @override
  +  Directory managedDirectory;
  +
  +  @override
  +  Directory ephemeralDirectory;
  +
  +  @override
  +  Directory pluginSymlinkDirectory;
  +
  +  @override
  +  File cmakeFile;
  +
  +  @override
  +  File generatedPluginCmakeFile;
  +  bool exists = false;
  +
  +  @override
  +  bool existsSync() => exists;
  +
  +}
   
   class FakeOperatingSystemUtils extends Fake implements OperatingSystemUtils {
     FakeOperatingSystemUtils(this.name);
  
positive.code:       });
  
        testUsingContext('pluginClass: none doesn\'t trigger registrant entry on Linux', () async {
          when(flutterProject.isModule).thenReturn(false);
          // Create a plugin without a pluginClass.
          final Directory pluginDirectory = createFakePlugin(fs);
          pluginDirectory.childFile('pubspec.yaml').writeAsStringSync('''
  
negative.code:       });
  
        testUsingContext('pluginClass: none doesn\'t trigger registrant entry on macOS', () async {
          flutterProject.isModule = true;
          // Create a plugin without a pluginClass.
          final Directory pluginDirectory = createFakePlugin(fs);
          pluginDirectory.childFile('pubspec.yaml').writeAsStringSync('''
  