| // Copyright (c) 2017, 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 close() |
| /// Closes the sink. |
| /// |
| /// This signals the end of the chunked conversion. This method is called when |
| /// converters are used as StreamTransformer's. |
| /// @description Checks that this method closes the sink. |
| /// @issue 29329 |
| /// @author sgrekhov@unipro.ru |
| |
| library close_A01_t01; |
| |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| |
| test(ChunkedConversionSink create(ChunkedConversionSink<List<int>> outSink)) { |
| bool called = false; |
| Utf8Codec codec = new Utf8Codec(); |
| var encoded = codec.encode("Кириллица"); |
| Utf8Decoder decoder = new Utf8Decoder(); |
| |
| var outSink = new ChunkedConversionSink<List<int>>.withCallback((accumulated) { |
| called = true; |
| Expect.listEquals([encoded], accumulated); |
| }); |
| |
| ByteConversionSink inSink = create(outSink) as ByteConversionSink; |
| var list = utf8.encode("Кириллица"); |
| |
| Expect.isFalse(called); |
| inSink.add(list); |
| Expect.isFalse(called); |
| inSink.close(); |
| Expect.isTrue(called); |
| |
| list = utf8.encode("прекрасна"); |
| inSink.add(list); |
| inSink.close(); |
| } |