| // Copyright (c) 2012, 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. |
| |
| // Test to ensure that StringBuffer and string interpolation behaves |
| // the same and fail fast. |
| |
| class ToStringWrapper { |
| final value; |
| |
| ToStringWrapper(this.value); |
| |
| toString() => value; |
| } |
| |
| wrap(value) => new ToStringWrapper(value); |
| |
| main() { |
| bool checkedMode = false; |
| assert(checkedMode = true); |
| interpolate(object) { |
| var result; |
| if (checkedMode && object != null) { |
| try { |
| result = '${wrap(object)}'; |
| } on TypeError { |
| return 'Error'; |
| } |
| } else { |
| try { |
| result = '${wrap(object)}'; |
| } on ArgumentError { |
| return 'Error'; |
| } |
| } |
| Expect.isTrue(result is String); |
| return 'Success'; |
| } |
| |
| buffer(object) { |
| var sb; |
| if (checkedMode && object != null) { |
| try { |
| sb = new StringBuffer()..write(wrap(object)); |
| } on TypeError { |
| return 'Error'; |
| } |
| } else { |
| try { |
| sb = new StringBuffer()..write(wrap(object)); |
| } on ArgumentError { |
| return 'Error'; |
| } |
| Expect.isTrue(sb.toString() is String); |
| } |
| return 'Success'; |
| } |
| |
| initBuffer(object) { |
| var sb; |
| if (checkedMode && object != null) { |
| try { |
| sb = new StringBuffer(wrap(object)); |
| } on TypeError { |
| return 'Error'; |
| } |
| } else { |
| try { |
| sb = new StringBuffer(wrap(object)); |
| } on ArgumentError { |
| return 'Error'; |
| } |
| Expect.isTrue(sb.toString() is String); |
| } |
| return 'Success'; |
| } |
| |
| Expect.equals('Error', interpolate(null)); |
| Expect.equals('Success', interpolate("")); |
| Expect.equals('Success', interpolate("string")); |
| Expect.equals('Error', interpolate([])); |
| Expect.equals('Error', interpolate([1])); |
| Expect.equals('Error', interpolate(new Object())); |
| |
| Expect.equals('Error', buffer(null)); |
| Expect.equals('Success', buffer("")); |
| Expect.equals('Success', buffer("string")); |
| Expect.equals('Error', buffer([])); |
| Expect.equals('Error', buffer([1])); |
| Expect.equals('Error', buffer(new Object())); |
| |
| Expect.equals('Error', initBuffer(null)); |
| Expect.equals('Success', initBuffer("")); |
| Expect.equals('Success', initBuffer("string")); |
| Expect.equals('Error', initBuffer([])); |
| Expect.equals('Error', initBuffer([1])); |
| Expect.equals('Error', initBuffer(new Object())); |
| } |