| // Copyright (c) 2011, 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 static void throws( |
| /// void f(), [_CheckExceptionFn check = null, String reason = '']) |
| /// Descriptive error message is provided in case of failure. |
| /// |
| /// @description Checks that message of thrown [ExpectException] includes the |
| /// specified reason argument if any, both when the tested method doesn't throw |
| /// any exceptions and when the check function returns false. |
| /// |
| /// @author varlax |
| |
| import "../../../Utils/expect.dart"; |
| |
| typedef bool checkFn(exception); |
| typedef void test(); |
| |
| main() { |
| check(() { return; }, null, "sdsds sd dsf1"); |
| check(() { return; }, (e) => true, "sdsds sd dsf2"); |
| check(() { return; }, (e) => false, "sdsds sd dsf3"); |
| |
| check(() {throw "";}, (e) => false, "sdsds sd dsf4"); |
| } |
| |
| |
| void check(test tFun, [checkFn? checkFun = null, String reason = '']) { |
| try { |
| Expect.throws(tFun, checkFun, reason); |
| Expect.fail("ExpectException expected"); |
| } on ExpectException catch(e) { |
| if (!(e.message as String).contains(reason as String, 0)) |
| throw "reason ($reason) not mentioned in ExpectException message " |
| "(${e.message})"; |
| } |
| } |