| // Copyright (c) 2016, 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. |
| |
| /** |
| * @assertion int parse(String source, {int radix, int onError(String source)}) |
| * Parse source as a, possibly signed, integer literal and return its value. |
| * ... |
| * If the source is not a valid integer literal, optionally prefixed by a sign, |
| * the onError is called with the source as argument, and its return value is |
| * used instead. If no onError is provided, a FormatException is thrown. |
| * |
| * The onError handler can be chosen to return null. This is preferable to to |
| * throwing and then immediately catching the FormatException. Example: |
| * |
| * var value = int.parse(text, onError: (source) => null); |
| * if (value == null) ... handle the problem |
| * The onError function is only invoked if source is a String. It is not invoked |
| * if the source is, for example, null. |
| * @description Checks that the source is not a valid integer literal, |
| * optionally prefixed by a sign, the onError is called with the source as |
| * argument, and its return value is used instead |
| * @author sgrekhov@unipro.ru |
| */ |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| bool called = false; |
| Expect.equals(1, int.parse("-a1", onError: (s) { |
| called = true; |
| Expect.equals("-a1", s); |
| return 1; |
| })); |
| Expect.isTrue(called); |
| |
| called = false; |
| Expect.equals(2, int.parse("a1", onError: (s) { |
| called = true; |
| Expect.equals("a1", s); |
| return 2; |
| })); |
| Expect.isTrue(called); |
| |
| called = false; |
| Expect.equals(3, int.parse("0xxxx", onError: (s) { |
| called = true; |
| Expect.equals("0xxxx", s); |
| return 3; |
| })); |
| Expect.isTrue(called); |
| |
| } |