[flutter_tools] clean-ups to linux doctor test (#51593)

diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart
index 74fd16e..5babf68 100644
--- a/packages/flutter_tools/lib/src/doctor.dart
+++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -81,7 +81,9 @@
           fileSystem: globals.fs,
         ),
       if (linuxWorkflow.appliesToHostPlatform)
-        LinuxDoctorValidator(),
+        LinuxDoctorValidator(
+          processManager: globals.processManager,
+        ),
       if (windowsWorkflow.appliesToHostPlatform)
         visualStudioValidator,
       if (ideValidators.isNotEmpty)
diff --git a/packages/flutter_tools/lib/src/linux/linux_doctor.dart b/packages/flutter_tools/lib/src/linux/linux_doctor.dart
index 2d5665b..edcd9f0 100644
--- a/packages/flutter_tools/lib/src/linux/linux_doctor.dart
+++ b/packages/flutter_tools/lib/src/linux/linux_doctor.dart
@@ -2,14 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'package:meta/meta.dart';
+import 'package:process/process.dart';
+
 import '../base/io.dart';
 import '../base/version.dart';
 import '../doctor.dart';
-import '../globals.dart' as globals;
 
 /// A validator that checks for Clang and Make build dependencies
 class LinuxDoctorValidator extends DoctorValidator {
-  LinuxDoctorValidator() : super('Linux toolchain - develop for Linux desktop');
+  LinuxDoctorValidator({
+    @required ProcessManager processManager,
+  }) : _processManager = processManager,
+       super('Linux toolchain - develop for Linux desktop');
+
+  final ProcessManager _processManager;
 
   /// The minimum version of clang supported.
   final Version minimumClangVersion = Version(3, 4, 0);
@@ -21,7 +28,7 @@
     /// Check for a minimum version of Clang.
     ProcessResult clangResult;
     try {
-      clangResult = await globals.processManager.run(const <String>[
+      clangResult = await _processManager.run(const <String>[
         'clang++',
         '--version',
       ]);
@@ -48,7 +55,7 @@
     // a better idea about what is supported.
     ProcessResult makeResult;
     try {
-      makeResult = await globals.processManager.run(const <String>[
+      makeResult = await _processManager.run(const <String>[
         'make',
         '--version',
       ]);
diff --git a/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart b/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart
index 095fcdc..69a3a20 100644
--- a/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart
+++ b/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart
@@ -3,157 +3,121 @@
 // found in the LICENSE file.
 
 import 'package:flutter_tools/src/doctor.dart';
-import 'package:flutter_tools/src/globals.dart' as globals;
 import 'package:flutter_tools/src/linux/linux_doctor.dart';
-import 'package:mockito/mockito.dart';
 import 'package:process/process.dart';
 
 import '../../src/common.dart';
 import '../../src/context.dart';
-import '../../src/mocks.dart';
 
 void main() {
-  group(LinuxDoctorValidator, () {
-    ProcessManager processManager;
-    LinuxDoctorValidator linuxDoctorValidator;
+  testWithoutContext('Full validation when clang++ and Make are available',() async {
+    final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
+      const FakeCommand(
+        command: <String>['clang++', '--version'],
+        stdout: 'clang version 4.0.1-10 (tags/RELEASE_401/final)\njunk',
+      ),
+      const FakeCommand(
+        command: <String>['make', '--version'],
+        stdout: 'GNU Make 4.1\njunk',
+      ),
+    ]);
+    final DoctorValidator linuxDoctorValidator = LinuxDoctorValidator(
+      processManager: processManager,
+    );
+    final ValidationResult result = await linuxDoctorValidator.validate();
 
-    setUp(() {
-      processManager = MockProcessManager();
-      linuxDoctorValidator = LinuxDoctorValidator();
-    });
+    expect(result.type, ValidationType.installed);
+    expect(result.messages, <ValidationMessage>[
+      ValidationMessage('clang++ 4.0.1'),
+      ValidationMessage('GNU Make 4.1'),
+    ]);
+  });
 
-    testUsingContext('Returns full validation when clang++ and make are availibe', () async {
-      when(globals.processManager.run(<String>['clang++', '--version'])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'clang version 4.0.1-10 (tags/RELEASE_401/final)\njunk',
-          exitCode: 0,
-        );
-      });
-      when(globals.processManager.run(<String>[
-        'make',
-        '--version',
-      ])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'GNU Make 4.1\njunk',
-          exitCode: 0,
-        );
-      });
+  testWithoutContext('Partial validation when clang++ version is too old', () async {
+    final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
+      const FakeCommand(
+        command: <String>['clang++', '--version'],
+        stdout: 'clang version 2.0.1-10 (tags/RELEASE_401/final)\njunk',
+      ),
+      const FakeCommand(
+        command: <String>['make', '--version'],
+        stdout: 'GNU Make 4.1\njunk',
+      ),
+    ]);
+    final DoctorValidator linuxDoctorValidator = LinuxDoctorValidator(
+      processManager: processManager,
+    );
+    final ValidationResult result = await linuxDoctorValidator.validate();
 
-      final ValidationResult result = await linuxDoctorValidator.validate();
-      expect(result.type, ValidationType.installed);
-      expect(result.messages, <ValidationMessage>[
-        ValidationMessage('clang++ 4.0.1'),
-        ValidationMessage('GNU Make 4.1'),
-      ]);
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => processManager,
-    });
+    expect(result.type, ValidationType.partial);
+    expect(result.messages, <ValidationMessage>[
+      ValidationMessage.error('clang++ 2.0.1 is below minimum version of 3.4.0'),
+      ValidationMessage('GNU Make 4.1'),
+    ]);
+  });
 
-    testUsingContext('Returns partial validation when clang++ version is too old', () async {
-      when(globals.processManager.run(<String>['clang++', '--version'])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'clang version 2.0.1-10 (tags/RELEASE_401/final)\njunk',
-          exitCode: 0,
-        );
-      });
-      when(globals.processManager.run(<String>[
-        'make',
-        '--version',
-      ])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'GNU Make 4.1\njunk',
-          exitCode: 0,
-        );
-      });
+  testWithoutContext('Missing validation when Make is not available', () async {
+    final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
+      const FakeCommand(
+        command: <String>['clang++', '--version'],
+        stdout: 'clang version 4.0.1-10 (tags/RELEASE_401/final)\njunk',
+      ),
+      const FakeCommand(
+        command: <String>['make', '--version'],
+        exitCode: 1,
+      ),
+    ]);
+    final DoctorValidator linuxDoctorValidator = LinuxDoctorValidator(
+      processManager: processManager,
+    );
+    final ValidationResult result = await linuxDoctorValidator.validate();
 
-      final ValidationResult result = await linuxDoctorValidator.validate();
-      expect(result.type, ValidationType.partial);
-      expect(result.messages, <ValidationMessage>[
-        ValidationMessage.error('clang++ 2.0.1 is below minimum version of 3.4.0'),
-        ValidationMessage('GNU Make 4.1'),
-      ]);
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => processManager,
-    });
+    expect(result.type, ValidationType.missing);
+    expect(result.messages, <ValidationMessage>[
+      ValidationMessage('clang++ 4.0.1'),
+      ValidationMessage.error('make is not installed'),
+    ]);
+  });
 
-    testUsingContext('Returns mising validation when make is not availible', () async {
-      when(globals.processManager.run(<String>['clang++', '--version'])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'clang version 4.0.1-10 (tags/RELEASE_401/final)\njunk',
-          exitCode: 0,
-        );
-      });
-      when(globals.processManager.run(<String>[
-        'make',
-        '--version',
-      ])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: '',
-          exitCode: 1,
-        );
-      });
+  testWithoutContext('Missing validation when clang++ is not available', () async {
+    final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
+      const FakeCommand(
+        command: <String>['clang++', '--version'],
+        exitCode: 1
+      ),
+      const FakeCommand(
+        command: <String>['make', '--version'],
+        stdout: 'GNU Make 4.1\njunk'
+      ),
+    ]);
+    final DoctorValidator linuxDoctorValidator = LinuxDoctorValidator(
+      processManager: processManager,
+    );
+    final ValidationResult result = await linuxDoctorValidator.validate();
 
-      final ValidationResult result = await linuxDoctorValidator.validate();
-      expect(result.type, ValidationType.missing);
-      expect(result.messages, <ValidationMessage>[
-        ValidationMessage('clang++ 4.0.1'),
-        ValidationMessage.error('make is not installed'),
-      ]);
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => processManager,
-    });
+    expect(result.type, ValidationType.missing);
+    expect(result.messages, <ValidationMessage>[
+      ValidationMessage.error('clang++ is not installed'),
+      ValidationMessage('GNU Make 4.1'),
+    ]);
+  });
 
-    testUsingContext('Returns mising validation when clang++ is not availible', () async {
-      when(globals.processManager.run(<String>['clang++', '--version'])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: '',
-          exitCode: 1,
-        );
-      });
-      when(globals.processManager.run(<String>[
-        'make',
-        '--version',
-      ])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: 'GNU Make 4.1\njunk',
-          exitCode: 0,
-        );
-      });
+  testWithoutContext('Missing validation when clang++ and Make are not available', () async {
+    final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
+      const FakeCommand(
+        command: <String>['clang++', '--version'],
+        exitCode: 1,
+      ),
+      const FakeCommand(
+        command: <String>['make', '--version'],
+        exitCode: 1,
+      ),
+    ]);
+    final DoctorValidator linuxDoctorValidator = LinuxDoctorValidator(
+      processManager: processManager,
+    );
 
-      final ValidationResult result = await linuxDoctorValidator.validate();
-      expect(result.type, ValidationType.missing);
-      expect(result.messages, <ValidationMessage>[
-        ValidationMessage.error('clang++ is not installed'),
-        ValidationMessage('GNU Make 4.1'),
-      ]);
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => processManager,
-    });
-
-
-    testUsingContext('Returns missing validation when clang and make are not availible', () async {
-      when(globals.processManager.run(<String>['clang++', '--version'])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: '',
-          exitCode: 1,
-        );
-      });
-      when(globals.processManager.run(<String>[
-        'make',
-        '--version',
-      ])).thenAnswer((_) async {
-        return FakeProcessResult(
-          stdout: '',
-          exitCode: 1,
-        );
-      });
-
-      final ValidationResult result = await linuxDoctorValidator.validate();
-      expect(result.type, ValidationType.missing);
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => processManager,
-    });
+    final ValidationResult result = await linuxDoctorValidator.validate();
+    expect(result.type, ValidationType.missing);
   });
 }
-
-class MockProcessManager extends Mock implements ProcessManager {}