// 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().add(wrap(object)); } on TypeError { return 'Error'; } } else { try { sb = new StringBuffer().add(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())); }