// Copyright 2015 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:convert'; import 'dart:io'; import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/devices.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:mockito/mockito.dart'; import 'package:process/process.dart'; import 'package:test/test.dart'; import '../src/common.dart'; import '../src/context.dart'; void main() { group('devices', () { setUpAll(() { Cache.disableLocking(); }); testUsingContext('returns 0 when called', () async { final DevicesCommand command = new DevicesCommand(); await createTestCommandRunner(command).run(<String>['devices']); }); testUsingContext('no error when no connected devices', () async { final DevicesCommand command = new DevicesCommand(); await createTestCommandRunner(command).run(<String>['devices']); expect(testLogger.statusText, contains('No devices detected')); }, overrides: <Type, Generator>{ AndroidSdk: () => null, DeviceManager: () => new DeviceManager(), ProcessManager: () => new MockProcessManager(), }); }); } class MockProcessManager extends Mock implements ProcessManager { @override Future<ProcessResult> run( List<dynamic> command, { String workingDirectory, Map<String, String> environment, bool includeParentEnvironment: true, bool runInShell: false, Encoding stdoutEncoding: SYSTEM_ENCODING, Encoding stderrEncoding: SYSTEM_ENCODING, }) async { return new ProcessResult(0, 0, '', ''); } @override ProcessResult runSync( List<dynamic> command, { String workingDirectory, Map<String, String> environment, bool includeParentEnvironment: true, bool runInShell: false, Encoding stdoutEncoding: SYSTEM_ENCODING, Encoding stderrEncoding: SYSTEM_ENCODING, }) { return new ProcessResult(0, 0, '', ''); } }