| /* |
| * 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 Execution of an assert statement assert(e); |
| * proceeds as follows: |
| * The conditional expression e is evaluated to an object o. If the class of o |
| * is a subtype of Function then let r be the result of invoking o with no |
| * arguments. Otherwise, let r be o. It is a dynamic type error if o is not of |
| * type bool or of type Function, or if r is not of type bool. If r is false, |
| * we say that the assertion failed. If r is true, we say that the assertion |
| * succeeded. If the assertion succeeded, execution of the assert statement is |
| * complete. If the assertion failed, an AssertionError is thrown. |
| * @description Checks that a assertion error occurs if the conditional |
| * expression e evaluates to false and has correct message. |
| * @author sgrekhov@unipro.ru |
| */ |
| |
| import '../../../Utils/expect.dart'; |
| |
| main() { |
| if (assertStatementsEnabled) { |
| dynamic n = null; |
| if(hasSoundNullSafety) { |
| Expect.throws(() { |
| assert(n); |
| }, (e) => e is TypeError); |
| } else { |
| Expect.throws(() { |
| assert(n); |
| }, (e) => e is AssertionError); |
| } |
| |
| Expect.throws(() { |
| assert(false, "Some message"); |
| }, (e) => e is AssertionError, "Some message"); |
| |
| Expect.throws(() { |
| assert(false, 123); |
| }, (e) => e is AssertionError, "123"); |
| |
| Expect.throws(() { |
| assert(false, 3.14); |
| }, (e) => e is AssertionError, 3.14.toString()); |
| |
| var o = new Object(); |
| Expect.throws(() { |
| assert(false, o); |
| }, (e) => e is AssertionError, o.toString()); |
| } |
| } |