// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:async'; import 'dart:io' as io; import 'package:file/file.dart'; import 'package:mockito/mockito.dart'; class MockProcess extends Mock implements io.Process { final Completer exitCodeCompleter = Completer(); final StreamController> stdoutController = StreamController>(); final StreamController> stderrController = StreamController>(); final MockIOSink stdinMock = MockIOSink(); @override Future get exitCode => exitCodeCompleter.future; @override Stream> get stdout => stdoutController.stream; @override Stream> get stderr => stderrController.stream; @override IOSink get stdin => stdinMock; } class MockIOSink extends Mock implements IOSink { List lines = []; @override void writeln([Object obj = ""]) => lines.add(obj); }