OLD | NEW |
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 parse_test; | |
6 | |
7 import 'package:test/test.dart'; | 5 import 'package:test/test.dart'; |
8 import 'package:args/args.dart'; | 6 import 'package:args/args.dart'; |
9 import 'utils.dart'; | 7 import 'utils.dart'; |
10 | 8 |
11 void main() { | 9 void main() { |
12 group('ArgParser.parse()', () { | 10 group('ArgParser.parse()', () { |
13 test('does not destructively modify the argument list', () { | 11 test('does not destructively modify the argument list', () { |
14 var parser = new ArgParser(); | 12 var parser = new ArgParser(); |
15 parser.addFlag('verbose'); | 13 parser.addFlag('verbose'); |
16 | 14 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 test('for absent flags are invoked with the default value', () { | 110 test('for absent flags are invoked with the default value', () { |
113 var a; | 111 var a; |
114 var parser = new ArgParser(); | 112 var parser = new ArgParser(); |
115 parser.addFlag('a', defaultsTo: false, callback: (value) => a = value); | 113 parser.addFlag('a', defaultsTo: false, callback: (value) => a = value); |
116 | 114 |
117 parser.parse([]); | 115 parser.parse([]); |
118 expect(a, isFalse); | 116 expect(a, isFalse); |
119 }); | 117 }); |
120 | 118 |
121 test('are invoked even if the flag is not present', () { | 119 test('are invoked even if the flag is not present', () { |
122 var a = 'not called'; | 120 var a = true; |
123 var parser = new ArgParser(); | 121 var parser = new ArgParser(); |
124 parser.addFlag('a', callback: (value) => a = value); | 122 parser.addFlag('a', callback: (value) => a = value); |
125 | 123 |
126 parser.parse([]); | 124 parser.parse([]); |
127 expect(a, isFalse); | 125 expect(a, isFalse); |
128 }); | 126 }); |
129 | 127 |
130 test('for present options are invoked with the value', () { | 128 test('for present options are invoked with the value', () { |
131 var a; | 129 var a; |
132 var parser = new ArgParser(); | 130 var parser = new ArgParser(); |
(...skipping 23 matching lines...) Expand all Loading... |
156 | 154 |
157 test('for multiple present, allowMultiple, options are invoked with ' | 155 test('for multiple present, allowMultiple, options are invoked with ' |
158 'value as a list', () { | 156 'value as a list', () { |
159 var a; | 157 var a; |
160 var parser = new ArgParser(); | 158 var parser = new ArgParser(); |
161 parser.addOption('a', | 159 parser.addOption('a', |
162 allowMultiple: true, callback: (value) => a = value); | 160 allowMultiple: true, callback: (value) => a = value); |
163 | 161 |
164 parser.parse(['--a=v', '--a=x']); | 162 parser.parse(['--a=v', '--a=x']); |
165 expect(a, equals(['v', 'x'])); | 163 expect(a, equals(['v', 'x'])); |
| 164 |
| 165 // This reified type is important in strong mode so that people can |
| 166 // safely write "as List<String>". |
| 167 expect(a, new isInstanceOf<List<String>>()); |
166 }); | 168 }); |
167 | 169 |
168 test('for single present, allowMultiple, options are invoked with ' | 170 test('for single present, allowMultiple, options are invoked with ' |
169 ' value as a single element list', () { | 171 ' value as a single element list', () { |
170 var a; | 172 var a; |
171 var parser = new ArgParser(); | 173 var parser = new ArgParser(); |
172 parser.addOption('a', | 174 parser.addOption('a', |
173 allowMultiple: true, callback: (value) => a = value); | 175 allowMultiple: true, callback: (value) => a = value); |
174 | 176 |
175 parser.parse(['--a=v']); | 177 parser.parse(['--a=v']); |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 var parser = new ArgParser(); | 500 var parser = new ArgParser(); |
499 parser.addFlag('woof'); | 501 parser.addFlag('woof'); |
500 | 502 |
501 var results = parser.parse(['--woof', 'stop', '--', 'arg']); | 503 var results = parser.parse(['--woof', 'stop', '--', 'arg']); |
502 expect(results['woof'], isTrue); | 504 expect(results['woof'], isTrue); |
503 expect(results.rest, equals(['stop', '--', 'arg'])); | 505 expect(results.rest, equals(['stop', '--', 'arg'])); |
504 }); | 506 }); |
505 }); | 507 }); |
506 }); | 508 }); |
507 } | 509 } |
OLD | NEW |