From 359d2beb4df4bb63d5caa59d62ad81eebbd0803f Mon Sep 17 00:00:00 2001 From: "amouravski@google.com" Date: Wed, 19 Jun 2013 23:05:42 +0000 Subject: [PATCH] Added new style of tests for parser. R=rnystrom@google.com Review URL: https://codereview.chromium.org//17333004 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24207 260f80e4-7a28-3924-810f-c04153c831b5 --- pkg/args/test/parse_all_test.dart | 62 +++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pkg/args/test/parse_all_test.dart diff --git a/pkg/args/test/parse_all_test.dart b/pkg/args/test/parse_all_test.dart new file mode 100644 index 00000000000..a9210464657 --- /dev/null +++ b/pkg/args/test/parse_all_test.dart @@ -0,0 +1,62 @@ +// Copyright (c) 2013, 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. + +library parse_all_test; + +import 'package:unittest/unittest.dart'; +import 'package:args/args.dart'; + +main() { + group('ArgParser.parse() starting with a non-option', () { + test('followed by flag', () { + var parser = new ArgParser()..addFlag('flag'); + var args = ['A', '--flag']; + + var results = parser.parse(args); + expect(results['flag'], isFalse); + expect(results.rest, orderedEquals(args)); + }); + + test('followed by option', () { + var parser = new ArgParser()..addOption('opt'); + var args = ['A', '--opt']; + + var results = parser.parse(args); + expect(results['opt'], isNull); + expect(results.rest, orderedEquals(args)); + }); + + test('followed by option and value', () { + var parser = new ArgParser()..addOption('opt'); + var args = ['A', '--opt', 'V']; + + var results = parser.parse(args); + expect(results['opt'], isNull); + expect(results.rest, orderedEquals(args)); + }); + + test('followed by unknown flag', () { + var parser = new ArgParser(); + var args = ['A', '--xflag']; + var results = parser.parse(args); + expect(results.rest, orderedEquals(args)); + }); + + test('followed by unknown option and value', () { + var parser = new ArgParser(); + var args = ['A', '--xopt', 'V']; + var results = parser.parse(args); + expect(results.rest, orderedEquals(args)); + }); + + test('followed by command', () { + var parser = new ArgParser()..addCommand('com'); + var args = ['A', 'com']; + + var results = parser.parse(args); + expect(results.command, isNull); + expect(results.rest, orderedEquals(args)); + }); + }); +}