anchor.diff:  const String kPath2 = '/another/bin/$kExecutable';
   
   void main() {
  -  MockProcessManager mockProcessManager;
     FakeProcessManager fakeProcessManager;
   
     setUp(() {
  -    mockProcessManager = MockProcessManager();
       fakeProcessManager = FakeProcessManager.list(<FakeCommand>[]);
     });
   
  
positive.code:     );
    });
  
    testWithoutContext('If unzip throws an ArgumentError, display an install message', () {
      final FileSystem fileSystem = MemoryFileSystem.test();
      when(mockProcessManager.runSync(
        <String>['unzip', '-o', '-q', 'foo.zip', '-d', fileSystem.currentDirectory.path],
      )).thenThrow(ArgumentError());
  
      final OperatingSystemUtils linuxOsUtils = OperatingSystemUtils(
        fileSystem: fileSystem,
        logger: BufferLogger.test(),
        platform: FakePlatform(operatingSystem: 'linux'),
        processManager: mockProcessManager,
      );
  
      expect(
        () => linuxOsUtils.unzip(fileSystem.file('foo.zip'), fileSystem.currentDirectory),
        throwsToolExit(
          message: 'Missing "unzip" tool. Unable to extract foo.zip.\n'
          'Consider running "sudo apt-get install unzip".'),
      );
  
      final OperatingSystemUtils macOSUtils = OperatingSystemUtils(
        fileSystem: fileSystem,
        logger: BufferLogger.test(),
        platform: FakePlatform(operatingSystem: 'macos'),
        processManager: mockProcessManager,
      );
  
      expect(
        () => macOSUtils.unzip(fileSystem.file('foo.zip'), fileSystem.currentDirectory),
        throwsToolExit
        (message: 'Missing "unzip" tool. Unable to extract foo.zip.\n'
          'Consider running "brew install unzip".'),
      );
  
      final OperatingSystemUtils unknownOsUtils = OperatingSystemUtils(
        fileSystem: fileSystem,
        logger: BufferLogger.test(),
        platform: FakePlatform(operatingSystem: 'fuchsia'),
        processManager: mockProcessManager,
      );
  
      expect(
        () => unknownOsUtils.unzip(fileSystem.file('foo.zip'), fileSystem.currentDirectory),
        throwsToolExit
        (message: 'Missing "unzip" tool. Unable to extract foo.zip.\n'
          'Please install unzip.'),
      );
    });
  
    testWithoutContext('stream compression level', () {
      expect(OperatingSystemUtils.gzipLevel1.level, equals(1));
    });
  }
  
  class MockProcessManager extends Mock implements ProcessManager {}
  
negative.code: 
    group('which on Windows', () {
      testWithoutContext('throws tool exit if where throws an argument error', () async {
        fakeProcessManager.addCommand(
          FakeCommand(
            command: const <String>[
              'where',
              kExecutable,
            ],
            exception: ArgumentError('Cannot find executable for where'),
          ),
        );
  
        final OperatingSystemUtils utils = OperatingSystemUtils(
          fileSystem: MemoryFileSystem.test(),
          logger: BufferLogger.test(),
          platform: FakePlatform(operatingSystem: 'windows'),
          processManager: fakeProcessManager,
        );
  
        expect(() => utils.which(kExecutable), throwsA(isA<ToolExit>()));
  