Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Side by Side Diff: pkg/args/test/args_test.dart

Issue 10989013: Change IllegalArgumentException to ArgumentError. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated co19 test expectations. Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library('args_test'); 5 #library('args_test');
6 6
7 #import('../../unittest/unittest.dart'); 7 #import('../../unittest/unittest.dart');
8 8
9 // TODO(rnystrom): Use "package:" URL here when test.dart can handle pub. 9 // TODO(rnystrom): Use "package:" URL here when test.dart can handle pub.
10 #import('../lib/args.dart'); 10 #import('../lib/args.dart');
11 11
12 main() { 12 main() {
13 group('ArgParser.addFlag()', () { 13 group('ArgParser.addFlag()', () {
14 test('throws IllegalArgumentException if the flag already exists', () { 14 test('throws ArgumentError if the flag already exists', () {
15 var parser = new ArgParser(); 15 var parser = new ArgParser();
16 parser.addFlag('foo'); 16 parser.addFlag('foo');
17 throwsIllegalArg(() => parser.addFlag('foo')); 17 throwsIllegalArg(() => parser.addFlag('foo'));
18 }); 18 });
19 19
20 test('throws IllegalArgumentException if the option already exists', () { 20 test('throws ArgumentError if the option already exists', () {
21 var parser = new ArgParser(); 21 var parser = new ArgParser();
22 parser.addOption('foo'); 22 parser.addOption('foo');
23 throwsIllegalArg(() => parser.addFlag('foo')); 23 throwsIllegalArg(() => parser.addFlag('foo'));
24 }); 24 });
25 25
26 test('throws IllegalArgumentException if the abbreviation exists', () { 26 test('throws ArgumentError if the abbreviation exists', () {
27 var parser = new ArgParser(); 27 var parser = new ArgParser();
28 parser.addFlag('foo', abbr: 'f'); 28 parser.addFlag('foo', abbr: 'f');
29 throwsIllegalArg(() => parser.addFlag('flummox', abbr: 'f')); 29 throwsIllegalArg(() => parser.addFlag('flummox', abbr: 'f'));
30 }); 30 });
31 31
32 test('throws IllegalArgumentException if the abbreviation is longer ' 32 test('throws ArgumentError if the abbreviation is longer '
33 'than one character', () { 33 'than one character', () {
34 var parser = new ArgParser(); 34 var parser = new ArgParser();
35 throwsIllegalArg(() => parser.addFlag('flummox', abbr: 'flu')); 35 throwsIllegalArg(() => parser.addFlag('flummox', abbr: 'flu'));
36 }); 36 });
37 }); 37 });
38 38
39 group('ArgParser.addOption()', () { 39 group('ArgParser.addOption()', () {
40 test('throws IllegalArgumentException if the flag already exists', () { 40 test('throws ArgumentError if the flag already exists', () {
41 var parser = new ArgParser(); 41 var parser = new ArgParser();
42 parser.addFlag('foo'); 42 parser.addFlag('foo');
43 throwsIllegalArg(() => parser.addOption('foo')); 43 throwsIllegalArg(() => parser.addOption('foo'));
44 }); 44 });
45 45
46 test('throws IllegalArgumentException if the option already exists', () { 46 test('throws ArgumentError if the option already exists', () {
47 var parser = new ArgParser(); 47 var parser = new ArgParser();
48 parser.addOption('foo'); 48 parser.addOption('foo');
49 throwsIllegalArg(() => parser.addOption('foo')); 49 throwsIllegalArg(() => parser.addOption('foo'));
50 }); 50 });
51 51
52 test('throws IllegalArgumentException if the abbreviation exists', () { 52 test('throws ArgumentError if the abbreviation exists', () {
53 var parser = new ArgParser(); 53 var parser = new ArgParser();
54 parser.addFlag('foo', abbr: 'f'); 54 parser.addFlag('foo', abbr: 'f');
55 throwsIllegalArg(() => parser.addOption('flummox', abbr: 'f')); 55 throwsIllegalArg(() => parser.addOption('flummox', abbr: 'f'));
56 }); 56 });
57 57
58 test('throws IllegalArgumentException if the abbreviation is longer ' 58 test('throws ArgumentError if the abbreviation is longer '
59 'than one character', () { 59 'than one character', () {
60 var parser = new ArgParser(); 60 var parser = new ArgParser();
61 throwsIllegalArg(() => parser.addOption('flummox', abbr: 'flu')); 61 throwsIllegalArg(() => parser.addOption('flummox', abbr: 'flu'));
62 }); 62 });
63 }); 63 });
64 64
65 group('ArgParser.parse()', () { 65 group('ArgParser.parse()', () {
66 group('flags', () { 66 group('flags', () {
67 test('are true if present', () { 67 test('are true if present', () {
68 var parser = new ArgParser(); 68 var parser = new ArgParser();
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 var args = parser.parse(['']); 427 var args = parser.parse(['']);
428 expect(args['define'], equals(['0'])); 428 expect(args['define'], equals(['0']));
429 }); 429 });
430 }); 430 });
431 431
432 group('query default values', () { 432 group('query default values', () {
433 test('queries the default value', () { 433 test('queries the default value', () {
434 var parser = new ArgParser(); 434 var parser = new ArgParser();
435 parser.addOption('define', defaultsTo: '0'); 435 parser.addOption('define', defaultsTo: '0');
436 expect(()=>parser.getDefault('undefine'), 436 expect(()=>parser.getDefault('undefine'),
437 throwsIllegalArgumentException); 437 throwsArgumentError);
438 }); 438 });
439 439
440 test('queries the default value for an unknown option', () { 440 test('queries the default value for an unknown option', () {
441 var parser = new ArgParser(); 441 var parser = new ArgParser();
442 parser.addOption('define', defaultsTo: '0'); 442 parser.addOption('define', defaultsTo: '0');
443 expect(()=>parser.getDefault('undefine'), 443 expect(()=>parser.getDefault('undefine'),
444 throwsIllegalArgumentException); 444 throwsArgumentError);
445 }); 445 });
446 }); 446 });
447 447
448 group('gets the option names from an ArgsResult', () { 448 group('gets the option names from an ArgsResult', () {
449 test('queries the set options', () { 449 test('queries the set options', () {
450 var parser = new ArgParser(); 450 var parser = new ArgParser();
451 parser.addFlag('woof', defaultsTo: false); 451 parser.addFlag('woof', defaultsTo: false);
452 parser.addOption('meow', defaultsTo: 'kitty'); 452 parser.addOption('meow', defaultsTo: 'kitty');
453 var args = parser.parse([]); 453 var args = parser.parse([]);
454 expect(args.options, hasLength(2)); 454 expect(args.options, hasLength(2));
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 group('ArgResults[]', () { 657 group('ArgResults[]', () {
658 test('throws if the name is not an option', () { 658 test('throws if the name is not an option', () {
659 var parser = new ArgParser(); 659 var parser = new ArgParser();
660 var results = parser.parse([]); 660 var results = parser.parse([]);
661 throwsIllegalArg(() => results['unknown']); 661 throwsIllegalArg(() => results['unknown']);
662 }); 662 });
663 }); 663 });
664 } 664 }
665 665
666 throwsIllegalArg(function) { 666 throwsIllegalArg(function) {
667 expect(function, throwsIllegalArgumentException); 667 expect(function, throwsArgumentError);
668 } 668 }
669 669
670 throwsFormat(ArgParser parser, List<String> args) { 670 throwsFormat(ArgParser parser, List<String> args) {
671 expect(() => parser.parse(args), throwsFormatException); 671 expect(() => parser.parse(args), throwsFormatException);
672 } 672 }
673 673
674 validateUsage(ArgParser parser, String expected) { 674 validateUsage(ArgParser parser, String expected) {
675 expected = unindentString(expected); 675 expected = unindentString(expected);
676 expect(parser.getUsage(), equals(expected)); 676 expect(parser.getUsage(), equals(expected));
677 } 677 }
678 678
679 // TODO(rnystrom): Replace one in test_utils. 679 // TODO(rnystrom): Replace one in test_utils.
680 String unindentString(String text) { 680 String unindentString(String text) {
681 var lines = text.split('\n'); 681 var lines = text.split('\n');
682 682
683 // Count the indentation of the last line. 683 // Count the indentation of the last line.
684 var whitespace = const RegExp('^ *'); 684 var whitespace = const RegExp('^ *');
685 var indent = whitespace.firstMatch(lines[lines.length - 1])[0].length; 685 var indent = whitespace.firstMatch(lines[lines.length - 1])[0].length;
686 686
687 // Drop the last line. It only exists for specifying indentation. 687 // Drop the last line. It only exists for specifying indentation.
688 lines.removeLast(); 688 lines.removeLast();
689 689
690 // Strip indentation from the remaining lines. 690 // Strip indentation from the remaining lines.
691 for (var i = 0; i < lines.length; i++) { 691 for (var i = 0; i < lines.length; i++) {
692 var line = lines[i]; 692 var line = lines[i];
693 if (line.length <= indent) { 693 if (line.length <= indent) {
694 // It's short, so it must be nothing but whitespace. 694 // It's short, so it must be nothing but whitespace.
695 if (line.trim() != '') { 695 if (line.trim() != '') {
696 throw new IllegalArgumentException( 696 throw new ArgumentError(
697 'Line "$line" does not have enough indentation.'); 697 'Line "$line" does not have enough indentation.');
698 } 698 }
699 699
700 lines[i] = ''; 700 lines[i] = '';
701 } else { 701 } else {
702 if (line.substring(0, indent).trim() != '') { 702 if (line.substring(0, indent).trim() != '') {
703 throw new IllegalArgumentException( 703 throw new ArgumentError(
704 'Line "$line" does not have enough indentation.'); 704 'Line "$line" does not have enough indentation.');
705 } 705 }
706 706
707 lines[i] = line.substring(indent); 707 lines[i] = line.substring(indent);
708 } 708 }
709 } 709 }
710 710
711 return Strings.join(lines, '\n'); 711 return Strings.join(lines, '\n');
712 } 712 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698