fix the stop command tests
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index a98069d..99fe8f3 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -236,17 +236,17 @@ } Future<dynamic> start(Map<String, dynamic> args) async { - if (args['deviceId'] is! String) - throw "A 'deviceId' is required"; + if (args == null || args['deviceId'] is! String) + throw "deviceId is required"; Device device = await _getDevice(args['deviceId']); if (device == null) - throw "A 'projectDirectory' is required"; + throw "device '${args['deviceId']}' not found"; if (args['projectDirectory'] is! String) - throw "A 'projectDirectory' is required"; + throw "projectDirectory is required"; String projectDirectory = args['projectDirectory']; if (!FileSystemEntity.isDirectorySync(projectDirectory)) - throw "The '$projectDirectory' does not exist"; + throw "'$projectDirectory' does not exist"; // We change the current working directory for the duration of the `start` command. // TODO(devoncarew): Make flutter_tools work better with commands run from any directory. @@ -280,17 +280,17 @@ } Future<bool> stop(dynamic args) async { - if (args['deviceId'] is! String) - throw "A 'deviceId' is required"; + if (args == null || args['deviceId'] is! String) + throw "deviceId is required"; Device device = await _getDevice(args['deviceId']); if (device == null) - throw "A 'projectDirectory' is required"; + throw "device '${args['deviceId']}' not found"; if (args['projectDirectory'] is! String) - throw "A 'projectDirectory' is required"; + throw "projectDirectory is required"; String projectDirectory = args['projectDirectory']; if (!FileSystemEntity.isDirectorySync(projectDirectory)) - throw "The '$projectDirectory' does not exist"; + throw "'$projectDirectory' does not exist"; Directory cwd = Directory.current; Directory.current = new Directory(projectDirectory);
diff --git a/packages/flutter_tools/test/daemon_test.dart b/packages/flutter_tools/test/daemon_test.dart index 5df8a08..9f986fc 100644 --- a/packages/flutter_tools/test/daemon_test.dart +++ b/packages/flutter_tools/test/daemon_test.dart
@@ -12,7 +12,6 @@ import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/globals.dart'; import 'package:flutter_tools/src/ios/mac.dart'; -import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; import 'src/context.dart'; @@ -97,7 +96,7 @@ }); }); - _testUsingContext('daemon.stopAll', () async { + _testUsingContext('daemon.stop', () async { DaemonCommand command = new DaemonCommand(); applyMocksToCommand(command); @@ -110,16 +109,10 @@ notifyingLogger: notifyingLogger ); - MockDeviceStore mockDevices = command.devices; - - when(mockDevices.android.stopApp(any)).thenReturn(true); - when(mockDevices.iOS.stopApp(any)).thenReturn(false); - when(mockDevices.iOSSimulator.stopApp(any)).thenReturn(false); - - commands.add({'id': 0, 'method': 'app.stopAll'}); + commands.add(<String, dynamic>{ 'id': 0, 'method': 'app.stop' }); Map response = await responses.stream.where(_notEvent).first; expect(response['id'], 0); - expect(response['result'], true); + expect(response['error'], contains('deviceId is required')); }); _testUsingContext('device.getDevices', () async {
diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index 3683b10..3ede26c 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart
@@ -45,8 +45,11 @@ if (!overrides.containsKey(SimControl)) testContext[SimControl] = new MockSimControl(); - if (!overrides.containsKey(OperatingSystemUtils)) - testContext[OperatingSystemUtils] = new MockOperatingSystemUtils(); + if (!overrides.containsKey(OperatingSystemUtils)) { + MockOperatingSystemUtils os = new MockOperatingSystemUtils(); + when(os.isWindows).thenReturn(false); + testContext[OperatingSystemUtils] = os; + } if (!overrides.containsKey(IOSSimulatorUtils)) { MockIOSSimulatorUtils mock = new MockIOSSimulatorUtils();
diff --git a/packages/flutter_tools/test/stop_test.dart b/packages/flutter_tools/test/stop_test.dart index 82b733e..112a9fc 100644 --- a/packages/flutter_tools/test/stop_test.dart +++ b/packages/flutter_tools/test/stop_test.dart
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; + import 'package:flutter_tools/src/commands/stop.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; @@ -17,12 +19,9 @@ testUsingContext('returns 0 when Android is connected and ready to be stopped', () { StopCommand command = new StopCommand(); applyMocksToCommand(command); - MockDeviceStore mockDevices = command.devices; - - when(mockDevices.android.stopApp(any)).thenReturn(true); - when(mockDevices.iOS.stopApp(any)).thenReturn(false); - when(mockDevices.iOSSimulator.stopApp(any)).thenReturn(false); - + MockAndroidDevice device = new MockAndroidDevice(); + when(device.stopApp(any)).thenReturn(new Future.value(true)); + testDeviceManager.addDevice(device); return createTestCommandRunner(command).run(['stop']).then((int code) { expect(code, equals(0)); }); @@ -31,11 +30,9 @@ testUsingContext('returns 0 when iOS is connected and ready to be stopped', () { StopCommand command = new StopCommand(); applyMocksToCommand(command); - MockDeviceStore mockDevices = command.devices; - - when(mockDevices.android.stopApp(any)).thenReturn(false); - when(mockDevices.iOS.stopApp(any)).thenReturn(true); - when(mockDevices.iOSSimulator.stopApp(any)).thenReturn(false); + MockIOSDevice device = new MockIOSDevice(); + when(device.stopApp(any)).thenReturn(new Future.value(true)); + testDeviceManager.addDevice(device); return createTestCommandRunner(command).run(['stop']).then((int code) { expect(code, equals(0));