anchor.diff:  
   void main() {
     FileSystem fileSystem;
  -  ProcessManager mockProcessManager;
  +  FakeProcessManager fakeProcessManager;
     MockXcodeProjectInterpreter mockXcodeProjectInterpreter;
     FlutterProject projectUnderTest;
     CocoaPods cocoaPodsUnderTest;
  -  InvokeProcess resultOfPodVersion;
     BufferLogger logger;
     TestUsage usage;
   
     void pretendPodVersionFails() {
  -    resultOfPodVersion = () async => exitsWithError();
  +    fakeProcessManager.addCommand(
  +      const FakeCommand(
  +        command: <String>['pod', '--version'],
  +        exitCode: 1,
  +      ),
  +    );
     }
   
     void pretendPodVersionIs(String versionText) {
  -    resultOfPodVersion = () async => exitsHappy(versionText);
  +    fakeProcessManager.addCommand(
  +      FakeCommand(
  +        command: const <String>['pod', '--version'],
  +        stdout: versionText,
  +      ),
  +    );
     }
   
     void podsIsInHomeDir() {
  
positive.code:         dependenciesChanged: false,
        );
        expect(didInstall, isFalse);
        verifyNever(mockProcessManager.run(
        argThat(containsAllInOrder(<String>['pod', 'install'])),
          workingDirectory: anyNamed('workingDirectory'),
          environment: anyNamed('environment'),
        ));
      });
  
      testWithoutContext('a failed pod install deletes Pods/Manifest.lock', () async {
        pretendPodIsInstalled();
        projectUnderTest.ios.podfile
          ..createSync()
          ..writeAsStringSync('Existing Podfile');
  
negative.code: 
      testWithoutContext('ffi failure on x86 macOS does not prompt gem install', () async {
        pretendPodIsInstalled();
        pretendPodVersionIs('1.10.0');
        fileSystem.file(fileSystem.path.join('project', 'ios', 'Podfile'))
          ..createSync()
          ..writeAsStringSync('Existing Podfile');
  
        fakeProcessManager.addCommands(<FakeCommand>[
          const FakeCommand(
            command: <String>['pod', 'install', '--verbose'],
            workingDirectory: 'project/ios',
            environment: <String, String>{
              'COCOAPODS_DISABLE_STATS': 'true',
              'LANG': 'en_US.UTF-8',
            },
            exitCode: 1,
            stderr: 'LoadError - dlsym(0x7fbbeb6837d0, Init_ffi_c): symbol not found - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle',
          ),
          const FakeCommand(
            command: <String>['which', 'sysctl'],
          ),
          const FakeCommand(
            command: <String>['sysctl', 'hw.optional.arm64'],
            exitCode: 1,
          ),
        ]);
  
        // Capture Usage.test() events.
        final StringBuffer buffer =
  