blob: 63bbfdd9af8782ab6e9466b5af0c0ccd99dd7ae0 [file] [log] [blame]
// Copyright 2020 The Flutter 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:io';
import 'dart:convert';
import 'package:mockito/mockito.dart';
import 'package:process/process.dart';
class MockPlatform extends Mock implements Platform {}
class MockProcessManager extends Mock implements ProcessManager {
@override
Future<Process> start(
List<Object>? command, {
String? workingDirectory,
Map<String, String>? environment,
bool includeParentEnvironment = true,
bool runInShell = false,
ProcessStartMode mode = ProcessStartMode.normal,
}) {
return super.noSuchMethod(Invocation.method(#start, [command], {#workingDirectory: workingDirectory}),
returnValue: Future<Process>.value(FakeProcess(0)));
}
@override
ProcessResult runSync(
List<Object> command, {
String? workingDirectory,
Map<String, String>? environment,
bool includeParentEnvironment = true,
bool runInShell = false,
covariant Encoding? stdoutEncoding = systemEncoding,
covariant Encoding? stderrEncoding = systemEncoding,
}) {
return super.noSuchMethod(Invocation.method(#runSync, [command]), returnValue: ProcessResult(1, 0, 'abc', 'def'));
}
}
class FakeProcess extends Fake implements Process {
FakeProcess(int exitCode,
{List<List<int>>? err = const [
<int>[1, 2, 3]
],
List<List<int>>? out = const [
<int>[1, 2, 3]
]})
: _exitCode = exitCode,
_err = err,
_out = out;
int _exitCode;
List<List<int>>? _err;
List<List<int>>? _out;
@override
Future<int> get exitCode => Future.value(_exitCode);
@override
Stream<List<int>> get stderr => Stream.fromIterable(_err ?? <List<int>>[]);
@override
Stream<List<int>> get stdout => Stream.fromIterable(_out ?? <List<int>>[utf8.encode('test')]);
}