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

Unified Diff: tests/lib/args/args_test.dart

Issue 10855084: Added support for multi-valued options (options that can occur more than once). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« lib/args/args.dart ('K') | « lib/args/args.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/lib/args/args_test.dart
===================================================================
--- tests/lib/args/args_test.dart (revision 10395)
+++ tests/lib/args/args_test.dart (working copy)
@@ -357,6 +357,36 @@
parser.addOption('mode', allowed: ['debug', 'release']);
throwsFormat(parser, ['--mode=profile']);
});
+
+ test('return last set value', () {
Bob Nystrom 2012/08/09 23:08:40 "return" -> "returns" "set" -> "provided"
gram 2012/08/09 23:47:00 Done.
+ var parser = new ArgParser();
+ parser.addOption('define');
+ var args = parser.parse(['--define=1', '--define=2']);
+ expect(args['define'], equals('2'));
+ });
+
+ test('return List if multi-valued', () {
Bob Nystrom 2012/08/09 23:08:40 "return List" -> "returns a List"
gram 2012/08/09 23:47:00 Done.
+ var parser = new ArgParser();
+ parser.addOption('define', multiValued:true);
Bob Nystrom 2012/08/09 23:08:40 Space after ":" here and elsewhere.
gram 2012/08/09 23:47:00 Done.
+ var args = parser.parse(['--define=1']);
+ expect(args['define'], hasLength(1));
Bob Nystrom 2012/08/09 23:08:40 Can you just do this: expect(args['define'], equa
gram 2012/08/09 23:47:00 Done.
+ args = parser.parse(['--define=1', '--define=2']);
+ expect(args['define'], hasLength(2));
+ expect(args['define'][0], equals('1'));
+ expect(args['define'][1], equals('2'));
Bob Nystrom 2012/08/09 23:08:40 Ditto here. equals() handles lists, right?
gram 2012/08/09 23:47:00 Done.
+ });
+
+ test('default values for multi-valued arguments', () {
Bob Nystrom 2012/08/09 23:08:40 This should be worded like a predicate. Maybe "ret
+ var parser = new ArgParser();
+ parser.addOption('define', defaultsTo:'0', multiValued:true);
+ var args = parser.parse(['']);
+ expect(args['define'], hasLength(1));
+ expect(args['define'][0], equals('0'));
+ args = parser.parse(['--define=1', '--define=2']);
+ expect(args['define'], hasLength(2));
+ expect(args['define'][0], equals('1'));
+ expect(args['define'][1], equals('2'));
+ });
});
group('remaining args', () {
@@ -557,7 +587,7 @@
}
throwsIllegalArg(function) {
- expect(function, throwsA(new isInstanceOf<IllegalArgumentException>()));
+ expect(function, throwsIllegalArgumentException);
Bob Nystrom 2012/08/09 23:08:40 +1!
}
throwsFormat(ArgParser parser, List<String> args) {
« lib/args/args.dart ('K') | « lib/args/args.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698