// Copyright (c) 2018, 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 void write(Object obj)
 * Converts [obj] to a [String] by invoking [Object.toString] and adds the
 * encoding of the result to the target consumer.
 * @description Checks that attempt to write [String] with non-ascii characters
 * causes exception if encoding is ASCII with [allowInvalid] set to [false].
 * @author iarkh@unipro.ru
 */
import "../../../Utils/expect.dart";
import "dart:convert";
import "dart:io";

run_main(Stdout sink, Encoding enc) async {
  sink.encoding = enc;
  Expect.throws(() { sink.write("âã�"); }, (e) => e is ArgumentError);
}

main(List<String> args) {
  run_main(stdout, new AsciiCodec(allowInvalid: false));
  run_main(stderr, new AsciiCodec(allowInvalid: false));
}
