| // Copyright (c) 2017, 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. |
| |
| import 'package:args/args.dart'; |
| import 'package:args/command_runner.dart'; |
| import 'package:test/test.dart'; |
| |
| import 'test_utils.dart'; |
| |
| void main() { |
| group('new ArgParser.allowAnything()', () { |
| late ArgParser parser; |
| setUp(() { |
| parser = ArgParser.allowAnything(); |
| }); |
| |
| test('exposes empty values', () { |
| expect(parser.options, isEmpty); |
| expect(parser.commands, isEmpty); |
| expect(parser.allowTrailingOptions, isFalse); |
| expect(parser.allowsAnything, isTrue); |
| expect(parser.usage, isEmpty); |
| expect(parser.findByAbbreviation('a'), isNull); |
| }); |
| |
| test('mutation methods throw errors', () { |
| expect(() => parser.addCommand('command'), throwsUnsupportedError); |
| expect(() => parser.addFlag('flag'), throwsUnsupportedError); |
| expect(() => parser.addOption('option'), throwsUnsupportedError); |
| expect(() => parser.addSeparator('==='), throwsUnsupportedError); |
| }); |
| |
| test('getDefault() throws an error', () { |
| expect(() => parser.defaultFor('option'), throwsArgumentError); |
| }); |
| |
| test('parses all values as rest arguments', () { |
| var results = parser.parse(['--foo', '-abc', '--', 'bar']); |
| expect(results.options, isEmpty); |
| expect(results.rest, equals(['--foo', '-abc', '--', 'bar'])); |
| expect(results.arguments, equals(['--foo', '-abc', '--', 'bar'])); |
| expect(results.command, isNull); |
| expect(results.name, isNull); |
| }); |
| |
| test('works as a subcommand', () { |
| var commandParser = ArgParser()..addCommand('command', parser); |
| var results = |
| commandParser.parse(['command', '--foo', '-abc', '--', 'bar']); |
| expect(results.command!.options, isEmpty); |
| expect(results.command!.rest, equals(['--foo', '-abc', '--', 'bar'])); |
| expect( |
| results.command!.arguments, equals(['--foo', '-abc', '--', 'bar'])); |
| expect(results.command!.name, equals('command')); |
| }); |
| |
| test('works as a subcommand in a CommandRunner', () async { |
| var commandRunner = CommandRunner('command', 'Description of command'); |
| var command = AllowAnythingCommand(); |
| commandRunner..addCommand(command); |
| |
| await commandRunner.run([command.name, '--foo', '--bar', '-b', 'qux']); |
| }); |
| }); |
| } |