blob: ac185f833d081852b91361cd3cb0890b5007dc8e [file] [log] [blame]
// 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:test/test.dart';
import 'package:args/args.dart';
void main() {
group('new ArgParser.allowAnything()', () {
ArgParser parser;
setUp(() {
parser = new 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.getUsage(), 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.getDefault('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 = new 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'));
});
});
}