| import 'dart:async'; |
| import 'dart:convert'; |
| import 'dart:io'; |
| |
| import 'package:mockito/mockito.dart'; |
| |
| import 'package:fuchsia_ctl/fuchsia_ctl.dart'; |
| import 'package:fuchsia_ctl/src/command_line.dart'; |
| |
| class FakeProcess implements Process { |
| FakeProcess(this._exitCode, this._stdout, this._stderr); |
| |
| final int _exitCode; |
| @override |
| Future<int> get exitCode async => _exitCode; |
| |
| bool _killed = false; |
| bool get killed => _killed; |
| |
| @override |
| bool kill([ProcessSignal signal = ProcessSignal.sigterm]) { |
| _killed = true; |
| return true; |
| } |
| |
| @override |
| int get pid => 1234; |
| |
| Stream<List<int>> _streamFromString(List<String> source) => |
| Stream<List<int>>.fromIterable( |
| source.map((String line) => utf8.encode('$line\n'))); |
| |
| final List<String> _stderr; |
| @override |
| Stream<List<int>> get stderr => _streamFromString(_stderr); |
| |
| @override |
| IOSink get stdin => FakeIOSink(); |
| |
| final List<String> _stdout; |
| @override |
| Stream<List<int>> get stdout => _streamFromString(_stdout); |
| } |
| |
| class FakeIOSink implements IOSink { |
| final Completer<void> _doneCompleter = Completer<void>.sync(); |
| |
| @override |
| Encoding encoding = utf8; |
| |
| @override |
| void add(List<int> data) {} |
| |
| @override |
| void addError(Object error, [StackTrace stackTrace]) {} |
| |
| @override |
| Future<dynamic> addStream(Stream<List<int>> stream) async {} |
| |
| @override |
| Future<void> close() async {} |
| |
| @override |
| Future<void> get done => _doneCompleter.future; |
| |
| @override |
| Future<void> flush() async {} |
| |
| @override |
| void write(Object obj) {} |
| |
| @override |
| void writeAll(Iterable<dynamic> objects, [String separator = '']) {} |
| |
| @override |
| void writeCharCode(int charCode) {} |
| |
| @override |
| void writeln([Object obj = '']) {} |
| } |
| |
| // ignore: must_be_immutable |
| class MockCommandLine extends Mock implements CommandLine {} |
| |
| class MockSshKeyManager extends Mock implements SshKeyManager {} |