anchor.diff:      });
   
       testWithoutContext(' prints stdout and stderr to trace on success', () async {
  -      when(mockProcessManager.runSync(<String>['whoohoo'])).thenReturn(
  -        ProcessResult(0, 0, 'stdout', 'stderr')
  -      );
  +      fakeProcessManager.addCommand(const FakeCommand(
  +        command: <String>[
  +          'whoohoo',
  +        ],
  +        stdout: 'stdout',
  +        stderr: 'stderr',
  +      ));
         expect(processUtils.runSync(<String>['whoohoo']).exitCode, 0);
         expect(testLogger.traceText, contains('stdout'));
         expect(testLogger.traceText, contains('stderr'));
       });
   
       testWithoutContext(' prints stdout to status and stderr to error on failure with throwOnError', () async {
  -      when(mockProcessManager.runSync(<String>['kaboom'])).thenReturn(
  -        ProcessResult(0, 1, 'stdout', 'stderr')
  -      );
  +      fakeProcessManager.addCommand(const FakeCommand(
  +        command: <String>[
  +          'kaboom',
  +        ],
  +        exitCode: 1,
  +        stdout: 'stdout',
  +        stderr: 'stderr',
  +      ));
         expect(() => processUtils.runSync(<String>['kaboom'], throwOnError: true),
                throwsA(isA<ProcessException>()));
         expect(testLogger.statusText, contains('stdout'));
  
positive.code:     });
  
      testWithoutContext(' does not throw on allowed Failures', () async {
        when(mockProcessManager.runSync(<String>['kaboom'])).thenReturn(
          ProcessResult(0, 1, '', '')
        );
        expect(
          processUtils.runSync(
            <String>['kaboom'],
  
negative.code:     });
  
      testWithoutContext(' succeeds on success', () async {
        fakeProcessManager.addCommand(const FakeCommand(
          command: <String>[
            'whoohoo',
          ],
        ));
        expect((await processUtils.run(<String>['whoohoo'])).exitCode, 0);
      });
  
      testWithoutContext(' fails on failure', () async {
        fakeProcessManager.addCommand(const FakeCommand(
          command: <String>[
            'boohoo',
          ],
          exitCode: 1,
        ));
        expect((await processUtils.run(<String>['boohoo'])).exitCode, 1);
      });
  
      testWithoutContext(' throws on failure with throwOnError', () async {
        fakeProcessManager.addCommand(const FakeCommand(
          command: <String>[
            'kaboom',
          ],
          exitCode: 1,
        ));
        expect(() => processUtils.run(<String>['kaboom'], throwOnError: true),
               throwsA(isA<ProcessException>()));
      });
  
      testWithoutContext(' does not throw on allowed Failures', () async {
        fakeProcessManager.addCommand(const FakeCommand(
          command: <String>[
            'kaboom',
          ],
          exitCode: 1,
        ));
        expect(
          (await processUtils.run(
            <String>['kaboom'],
  