Index: pkg/args/test/command_runner_test.dart |
diff --git a/pkg/args/test/command_runner_test.dart b/pkg/args/test/command_runner_test.dart |
deleted file mode 100644 |
index ba7faeb1900bda08386f6426cd7050aef8bdf66f..0000000000000000000000000000000000000000 |
--- a/pkg/args/test/command_runner_test.dart |
+++ /dev/null |
@@ -1,295 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library command_runner_test; |
- |
-import 'package:args/args.dart'; |
-import 'package:args/command_runner.dart'; |
-import 'package:unittest/unittest.dart'; |
- |
-import 'utils.dart'; |
- |
-const _DEFAULT_USAGE = """ |
-Usage: test <command> [arguments] |
- |
-Global options: |
--h, --help Print this usage information. |
- |
-Available commands: |
- help Display help information for test. |
- |
-Run "test help <command>" for more information about a command."""; |
- |
-void main() { |
- var runner; |
- setUp(() { |
- runner = new CommandRunner("test", "A test command runner."); |
- }); |
- |
- test(".invocation has a sane default", () { |
- expect(runner.invocation, |
- equals("test <command> [arguments]")); |
- }); |
- |
- group(".usage", () { |
- test("returns the usage string", () { |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-$_DEFAULT_USAGE""")); |
- }); |
- |
- test("contains custom commands", () { |
- runner.addCommand(new FooCommand()); |
- |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-Usage: test <command> [arguments] |
- |
-Global options: |
--h, --help Print this usage information. |
- |
-Available commands: |
- foo Set a value. |
- help Display help information for test. |
- |
-Run "test help <command>" for more information about a command.""")); |
- }); |
- |
- test("contains custom options", () { |
- runner.argParser.addFlag("foo", help: "Do something."); |
- |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-Usage: test <command> [arguments] |
- |
-Global options: |
--h, --help Print this usage information. |
- --[no-]foo Do something. |
- |
-Available commands: |
- help Display help information for test. |
- |
-Run "test help <command>" for more information about a command.""")); |
- }); |
- |
- test("doesn't print hidden commands", () { |
- runner.addCommand(new HiddenCommand()); |
- |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-$_DEFAULT_USAGE""")); |
- }); |
- |
- test("doesn't print aliases", () { |
- runner.addCommand(new AliasedCommand()); |
- |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-Usage: test <command> [arguments] |
- |
-Global options: |
--h, --help Print this usage information. |
- |
-Available commands: |
- aliased Set a value. |
- help Display help information for test. |
- |
-Run "test help <command>" for more information about a command.""")); |
- }); |
- }); |
- |
- test("usageException splits up the message and usage", () { |
- expect(() => runner.usageException("message"), |
- throwsUsageError("message", _DEFAULT_USAGE)); |
- }); |
- |
- group("run()", () { |
- test("runs a command", () { |
- var command = new FooCommand(); |
- runner.addCommand(command); |
- |
- expect(runner.run(["foo"]).then((_) { |
- expect(command.hasRun, isTrue); |
- }), completes); |
- }); |
- |
- test("runs an asynchronous command", () { |
- var command = new AsyncCommand(); |
- runner.addCommand(command); |
- |
- expect(runner.run(["async"]).then((_) { |
- expect(command.hasRun, isTrue); |
- }), completes); |
- }); |
- |
- test("runs a hidden comand", () { |
- var command = new HiddenCommand(); |
- runner.addCommand(command); |
- |
- expect(runner.run(["hidden"]).then((_) { |
- expect(command.hasRun, isTrue); |
- }), completes); |
- }); |
- |
- test("runs an aliased comand", () { |
- var command = new AliasedCommand(); |
- runner.addCommand(command); |
- |
- expect(runner.run(["als"]).then((_) { |
- expect(command.hasRun, isTrue); |
- }), completes); |
- }); |
- |
- test("runs a subcommand", () { |
- var command = new AsyncCommand(); |
- runner.addCommand(new FooCommand()..addSubcommand(command)); |
- |
- expect(runner.run(["foo", "async"]).then((_) { |
- expect(command.hasRun, isTrue); |
- }), completes); |
- }); |
- |
- group("with --help", () { |
- test("with no command prints the usage", () { |
- expect(() => runner.run(["--help"]), prints(""" |
-A test command runner. |
- |
-$_DEFAULT_USAGE |
-""")); |
- }); |
- |
- test("with a command prints the usage for that command", () { |
- var command = new FooCommand(); |
- runner.addCommand(command); |
- |
- expect(() => runner.run(["foo", "--help"]), prints(""" |
-Set a value. |
- |
-Usage: test foo [arguments] |
--h, --help Print this usage information. |
- |
-Run "test help" to see global options. |
-""")); |
- }); |
- }); |
- |
- group("with help command", () { |
- test("with no command prints the usage", () { |
- expect(() => runner.run(["help"]), prints(""" |
-A test command runner. |
- |
-$_DEFAULT_USAGE |
-""")); |
- }); |
- |
- test("with a command prints the usage for that command", () { |
- var command = new FooCommand(); |
- runner.addCommand(command); |
- |
- expect(() => runner.run(["help", "foo"]), prints(""" |
-Set a value. |
- |
-Usage: test foo [arguments] |
--h, --help Print this usage information. |
- |
-Run "test help" to see global options. |
-""")); |
- }); |
- |
- test("prints its own usage", () { |
- expect(() => runner.run(["help", "help"]), prints(""" |
-Display help information for test. |
- |
-Usage: test help [command] |
--h, --help Print this usage information. |
- |
-Run "test help" to see global options. |
-""")); |
- }); |
- }); |
- }); |
- |
- group("with a footer", () { |
- setUp(() { |
- runner = new CommandRunnerWithFooter("test", "A test command runner."); |
- }); |
- |
- test("includes the footer in the usage string", () { |
- expect(runner.usage, equals(""" |
-A test command runner. |
- |
-$_DEFAULT_USAGE |
-Also, footer!""")); |
- }); |
- |
- test("includes the footer in usage errors", () { |
- expect(runner.run(["--bad"]), |
- throwsUsageError('Could not find an option named "bad".', |
- "$_DEFAULT_USAGE\nAlso, footer!")); |
- }); |
- }); |
- |
- group("throws a useful error when", () { |
- test("arg parsing fails", () { |
- expect(runner.run(["--bad"]), |
- throwsUsageError('Could not find an option named "bad".', |
- _DEFAULT_USAGE)); |
- }); |
- |
- test("a top-level command doesn't exist", () { |
- expect(runner.run(["bad"]), |
- throwsUsageError('Could not find a command named "bad".', |
- _DEFAULT_USAGE)); |
- }); |
- |
- test("a subcommand doesn't exist", () { |
- runner.addCommand( |
- new FooCommand()..addSubcommand(new AsyncCommand())); |
- |
- expect(runner.run(["foo bad"]), |
- throwsUsageError('Could not find a command named "foo bad".', """ |
-Usage: test <command> [arguments] |
- |
-Global options: |
--h, --help Print this usage information. |
- |
-Available commands: |
- foo Set a value. |
- help Display help information for test. |
- |
-Run "test help <command>" for more information about a command.""")); |
- }); |
- |
- test("a subcommand wasn't passed", () { |
- runner.addCommand( |
- new FooCommand()..addSubcommand(new AsyncCommand())); |
- |
- expect(runner.run(["foo"]), |
- throwsUsageError('Missing subcommand for "test foo".', """ |
-Usage: test foo <subcommand> [arguments] |
--h, --help Print this usage information. |
- |
-Available subcommands: |
- async Set a value asynchronously. |
- |
-Run "test help" to see global options.""")); |
- }); |
- |
- test("a command that doesn't take arguments was given them", () { |
- runner.addCommand(new FooCommand()); |
- |
- expect(runner.run(["foo", "bar"]), |
- throwsUsageError('Command "foo" does not take any arguments.', """ |
-Usage: test foo [arguments] |
--h, --help Print this usage information. |
- |
-Run "test help" to see global options.""")); |
- }); |
- }); |
-} |