Index: pkg/args/test/parse_test.dart |
diff --git a/pkg/args/test/parse_test.dart b/pkg/args/test/parse_test.dart |
index ab1d1306f8db81e5749ce59be81f6d7a7b2a9ff9..828c2aefc5d0a9991fca9ceb57270e43b6d0fac4 100644 |
--- a/pkg/args/test/parse_test.dart |
+++ b/pkg/args/test/parse_test.dart |
@@ -36,7 +36,7 @@ main() { |
expect(args['verbose'], isFalse); |
}); |
- test('throws if given a value', () { |
+ test('throw if given a value', () { |
var parser = new ArgParser(); |
parser.addFlag('verbose'); |
@@ -238,6 +238,17 @@ main() { |
expect(args['apple'], equals('b?!c')); |
}); |
+ test('are case-sensitive', () { |
+ var parser = new ArgParser(); |
+ parser.addFlag('recurse', defaultsTo: false, abbr:'R'); |
+ |
+ var results = parser.parse(['-R']); |
+ expect(results['recurse'], isTrue); |
+ expect(results.rest, []); |
+ |
+ throwsFormat(parser, ['-r']); |
+ }); |
+ |
test('throw if unknown', () { |
var parser = new ArgParser(); |
throwsFormat(parser, ['-f']); |
@@ -350,14 +361,14 @@ main() { |
throwsFormat(parser, ['--mode=profile']); |
}); |
- test('returns last provided value', () { |
+ test('return last provided value', () { |
var parser = new ArgParser(); |
parser.addOption('define'); |
var args = parser.parse(['--define=1', '--define=2']); |
expect(args['define'], equals('2')); |
}); |
- test('returns a List if multi-valued', () { |
+ test('return a list if multi-valued', () { |
var parser = new ArgParser(); |
parser.addOption('define', allowMultiple: true); |
var args = parser.parse(['--define=1']); |
@@ -366,8 +377,8 @@ main() { |
expect(args['define'], equals(['1','2'])); |
}); |
- test('returns the default value for multi-valued arguments ' |
- 'if not explicitly set', () { |
+ test('return the default value for multi-valued arguments if not ' |
+ 'explicitly set', () { |
var parser = new ArgParser(); |
parser.addOption('define', defaultsTo: '0', allowMultiple: true); |
var args = parser.parse(['']); |
@@ -376,17 +387,14 @@ main() { |
}); |
group('remaining args', () { |
- test('stops parsing args when a non-option-like arg is encountered', () { |
+ test('accumulates unhandled arguments', () { |
var parser = new ArgParser(); |
parser.addFlag('woof'); |
parser.addOption('meow'); |
- parser.addOption('tweet', defaultsTo: 'bird'); |
- |
- var results = parser.parse(['--woof', '--meow', 'v', 'not', 'option']); |
+ var results = parser.parse(['a', '--woof', 'b', '--meow', 'c', 'd']); |
expect(results['woof'], isTrue); |
- expect(results['meow'], equals('v')); |
- expect(results['tweet'], equals('bird')); |
- expect(results.rest, orderedEquals(['not', 'option'])); |
+ expect(results['meow'], equals('c')); |
+ expect(results.rest, orderedEquals(['a', 'b', 'd'])); |
ahe
2013/01/10 19:51:40
Could you add a test that you reject unknown argum
Bob Nystrom
2013/01/10 23:16:40
The tests on 252 and 329 should cover that, I thin
ahe
2013/01/11 05:37:28
Yes. I guess I was skipping exceptions when I scan
|
}); |
test('stops parsing at "--"', () { |
@@ -399,15 +407,6 @@ main() { |
expect(results['meow'], equals('kitty')); |
expect(results.rest, orderedEquals(['--meow'])); |
}); |
- |
- test('handles options with case-sensitivity', () { |
- var parser = new ArgParser(); |
- parser.addFlag('recurse', defaultsTo: false, abbr:'R'); |
- var results = parser.parse(['-R']); |
- expect(results['recurse'], isTrue); |
- expect(results.rest, [ ]); |
- throwsFormat(parser, ['-r']); |
- }); |
}); |
}); |
} |